Concurrency with Actor Model(행위자 모델)

CPU Clock 성능 진화의 한계 도달

현대 CPU는 클럭을 높이는 방법으로는 한계에 부딪혔기에 소프트웨어 적으로 고민이 필요해졌다.

공짜 점심은 끝났다. - 허브셔터(Hurb Shutter)

동시성과 병렬성

image.png

동시성 → 한개의 코어가 번갈아 가며 수행

병렬성 → 여러개의 코어가 병렬로 작업을 수행

멀티 쓰레드의 문제

쓰레드간 공유되는 데이터는 개발자가 관리해야 한다.

비결정성(Non-Deterministic) 때문에 버그가 발생해도 재현(디버그)가 어려움.

(비 결정성이란 동일한 입력이 주어지더라도 매번 다른 과정을 거쳐 다른 결과를 도출하는 알고리즘)

멀티 쓰레드 설계의 대안 - 액터모델

객체지향 → 모든것은 객체다.

액터모델 → 모든것은 액터다.