1
A
回答
4
在Akka中,線程池通過MessageDispatcher實例進行管理。您可以輕鬆地所需的調度程序設置爲演員:
class MyActor(dispatcher: MessageDispatcher) extends Actor {
self.dispatcher = dispatcher
...
}
要提供自己的調度員,可以延長akka.dispatch.MessageDispatcher
(參見例如現有的調度實施)。在這裏你可以直接玩線程。
當然,這是危險的把業務邏輯的調度中,因爲它可能會破壞演員模型,提高併發錯誤的數量...
-1
我試圖理解它自己,但那個接縫傢伙在阿卡不希望線程管理暴露給公衆。
ThreadPoolConfig - 這是負責創造的ExecutorService實例的類是與方法createExecutorService()的情況下,類中聲明最終!
final def createExecutorService(threadFactory: ThreadFactory): ExecutorService = {
flowHandler match {
case Left(rejectHandler) ⇒
val service = new ThreadPoolExecutor(...)
service
case Right(bounds) ⇒
val service = new ThreadPoolExecutor(...)
new BoundedExecutorDecorator(service, bounds)
}
}
所以,我沒有看到一個簡單的方法來提供自己的ExecutorService。
相關問題
- 1. 播放2線程池:默認池VS阿卡池與Java
- 2. 限制線程池線程的數量
- 3. Web Api控制器和線程池
- 4. 多線程線程控制
- 5. 多線程 - 新線程vs線程池
- 6. 線程池中的線程
- 7. 線程池最大線程
- 8. 線程中的流程控制。線程
- 9. 線程池stucks
- 10. PHP線程池?
- 11. C++線程池
- 12. Servlet線程池
- 13. Silverlight線程池
- 14. Java線程池
- 15. QThread線程池
- 16. 線程池:DispatchQueue.main.async
- 17. Windows線程池
- 18. 阿卡均衡池中有可變大小的線程池執行人
- 19. 斯卡拉演員線程控制
- 20. 阿卡演員的線程管理
- 21. 瞭解阿卡演員的線程
- 22. Ruby - 從主線程控制子線程
- 23. 控制線程流
- 24. Tomcat線程控制
- 25. 控制多線程
- 26. 線程池中的線程狀態
- 27. 使用線程池或線程
- 28. 在一個線程池管理線程
- 29. 線程是否由線程池管理?
- 30. boost :: asio,線程池和線程監視
這是不正確的,您可以編寫自己的MessageDispatcher(擴展特質)實現並將其傳遞給Actors,如範例中的答案。在MessageDispatcher實現中,您可以選擇使用任何您希望的執行者服務。您提到的方法只能從ExecutorBasedEventDrivenDispatcher中使用。 –
我如何做到這一點,如果MessageDispatcher trait有這樣的事情 ** private [akka] def dispatch(invocation:MessageInvocation):Unit ** – Alex
@Raymond Roestenburg ** private [akka] def start():Unit * * 據我所知這是封裝私有方法,cannod可以訪問外阿卡。 – Alex