Page History
...
AKKA는 자바가 가진 스레드 모델에따른 스케쥴러를 정확하게 이해하고 이것을 추상화하여 성능 튜닝요소로 활용을 합니다.
이것은 AKKA를 배워야하는 이유중 일부분입니다. 모던한 개발툴킷들은 대부분 전통적인 개발방식의 문제를 해결하기위해
스레드 프로그래밍을 직접하지말아라고 하지만, 작성을 직접하지 말것을 권장합니다. 툴킷자체가 스레드를 어떻게 잘 다룰지 알고있으며 심지어 이것을 우리가
알고있는것보다 더 자세하게 설명하고 있습니다효율적으로 안정적으로 사용할수 있는 가이드(구속복)를 제공합니다.
동시처리 스레드 제한 예제
Code Block | ||||
---|---|---|---|---|
| ||||
//application.conf 설정 blocking-io-dispatcher { type = Dispatcher executor = "thread-pool-executor" thread-pool-executor { fixed-pool-size = 2 } throughput = 1 } //구현부 //특정 액터 Dispatcher지정 ActorRef testActor = system.actorOf(ext.props("testActor") .withDispatcher("blocking-io-dispatcher"), "service1"); // 동시에 메시지 전송 for(int i=0;i<10;i++) testActor.tell("test message wiht dispatcher",null); |
...
동시처리수를 1개로 제한하고, 스레드수를 2개로 제한을하면 스레드모델중 세마포어와 유사한 스레드풀 기능을 수행하게 되며
일반적으로 심플하게 사용되는 방식입니다스레드모델 이용시 가장 심플하게 사용할수 있는 방법중 하나입니다. 동시 요청이 10개가 왔다고하면, 스레드 두개만 활용하여
분배되어 처리되게 됩니다. 이것은 한가지예일뿐이며, Dispatcher옵션으로 다양한 스레드모델의 효과를 볼수가 있습니다.
자바가가진 스레드풀의 개념과, 이를 더 추상화해주는 dispatcher에 대한 더 자세한것은
...