Table of Contents

Concurrency and Parallelism

기본 개념

Reactive Streams

https://www.reactivemanifesto.org/

Back pressure

Publisher가 생산하는 데이터 처리 속도보다 Subscriber가 소비하는 데이터 처리 속도가 늦을 때, 처리를 늦추거나 중단하는 기술.

Scale Cube

https://microservices.io/articles/scalecube.html

Mastering Akka

image_01_003.jpg

활용

Java

Executor

https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/package-summary.html

ExecutorService

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html

ScheduledExecutorService

https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/package-summary.html

ForkJoinPool

https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/package-summary.html

Fork/Join 작업을 수행하는 Thread Pool. workstealing 알고리즘 사용하여 유휴 Task를 훔쳐와서 작업.

구현해야 하는 Task는 두 가지. 두 클래스 모두 Future 의 자식.

Future

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html

작업 완료 여부를 확인, 대기, 조회

CompletableFuture

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html

Future의 조합(상호 연동)이 필요할 때 사용

Scala

Futures and Promises

https://docs.scala-lang.org/overviews/core/futures.html

용어