Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 동시성 : 한사람이 커피주문 받고 만들기를 동시에한다. ( 커피머신을 이용하면서도 주문을 받음 )- 비동기 논블록킹 프로그래밍
    • 주의 : 블락킹이 하나라도 발생하면 전체가 함께 지연됨
  • 병렬성 : 커피주문을 받는사람과 만드는 사람이 각각 따로 있다.  - 병렬처리 멀티스레드 프로그래밍
    • 주의 : 블락킹이 발생하면 특정 컨텍스트 담당영역만 지연되지만 공유문제를 잘 해결하지 못하면 데드락및 궁핍현상이 발생해 작업이 중단될수도 있음
  • 순차성(동기순차 블락킹 프로그래밍) : 한사람이 커피주문을 받고 커피를 만들지만~ 커피가 완성될때까지 다음손님 주문을 받지 못한다.

      🧩 1. 전체 테스트 구조

        • 동시/병렬로 진행되지 않음으로 전체 소요시간은 각 Task의 전체합으로 전체완료시간이 가장느림


      JVM(자바+코틀린) 영역이 지원하는 동시성 프로그래밍 방식을 먼저 알아보고 액터모델에 이벤트를 전송해 결과값을 받는 ASK패턴도 알아보겠습니다.

      🧩 1. 전체 테스트 구조

      이 파일은 코루틴, 리액터(Reactor), CompletableFuture, Java 이 파일은 코루틴, 리액터(Reactor), CompletableFuture, Java Stream, Akka Streams, 액터(Actor) 등을 사용해서
      "비동기 동시성" 그리고 "액터(Actor) 기반 메시지 통신" 테스트를 다양한 방법으로 검증하는 것입니다.

      ...

      ✅ 특히 Kotlin 기반 경량 Actor 모델 (KHelloActor)은 앞으로 Virtual Thread를 고려한 차세대 패턴을 시도하고 있다는 점이 매우 흥미로운 부분입니다.


      다음은 자바진영의 비동기 처리가 왜이렇게 많이 있고 복잡하나의 기원이 되는 내용으로 JVM영역의 다양한 IO를 다루기위해서는 결국 다양한 동시성처리 방법을 모두 익혀야하는 불행한 상황이된듯

      Erik Meijer의 한마디~

      "이보게, 브라이언 괴츠, C#,파이선,자바스크립트는 물론 심지어 PHP도 async, await를 지원하고 있다네. 그런 기능이 없는 언어는 자바일뿐이야.

      람다를 이용해서 콜백함수를 사용하면 된다고? 천만에 콜백은 최악이야. 도움이 안된다고. 자바 9 버전에 담으려고 하는 걸 다 내려놓고 지금당장

      async, await부터 넣으라고. 그래야 모두가 행복해질수 있어"

      여기서 소개하는 전체코드는 다음경로에서 확인할수 있으며 실행하수 있습니다.


      전체코드

      ...