Versions Compared

Key

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

우리가 생성하고 작동시킨 액터가 스레드를 하나씩 사용하는것인지?

스레드풀을 어떠한 전략을 통해 사용하는지 성능의 관점에서 살펴보도록 해보겠습니다.
Info

Dispatcher는 ActorSystem 내에서 실행되는 모든 코드를 스케줄링 합니다.

각 Actor의 처리량과 시간 점유율을 조정하여 각자에게 공정한 리소스를 제공합니다.


Dispatcher란?

Thread를 개발코드내에 직접 생성하고, 각각의 Job의 효율적인 수행을 위해서 

스레드 모델을 익히고 직접 구현에 반영해야 했으며 병렬처리 고성능 관점에서

발전해왔지만, 스레드를 직접 제어해야하는 개발방식이 일괄적이지 못하고

분산처리에서 이러한 개발방법이 큰 도움이 되지 못하다는것이며 결정적으로

스레드 사용비용은 꾀비싼 비용을 지불해야하며 제어하기가 어렵다란점입니다.

그래서 각 작은 단위의 Task가 비동기처리모델로 Thread를 효율적으로 사용하는

방법들이 등장하였으며 다시 이것 스케쥴링을 관리하는 기능들이 외부 옵션으로

지원하기 시작하였습니다. 그러한 기능을 통상적으로 Dispatcher 이라고 불리며

AKKA에만 존재하는 컨셉이아니고 다양한 병렬처리혹은 동시성처리를 하는 어떠한

장치들이 최대한 개발자의 개입의 최소화하고 설정만을 통해 성능에관련한 튜닝옵션을

제공하기 시작하였습니다.