2015-06-20 219 views
0

我有32個演員隨時運行,但只有24個線程。前24名演員獲得24個可用線程。剩下的8個線程只執行24個actor中的一個的執行線程。阿卡演員的線程管理

你能指點我如何將每個演員的專用線程選項更改爲共享線程選項。

感謝, cabear

+2

默認情況下,actor不固定到線程。 – Ryan

+0

最好先看一下http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html,你不應該自己管理線程。 – sap1ens

回答

1

這是現在演員的調度是如何工作的 - 你應該Akka Dispatchers讀到更好地瞭解它。

雖然有一句話:參與者被複用到線程中。這意味着多個角色使用相同的線程,只是不是在同一時間 - 它的工作原理是這樣的:Actor A有一些消息要處理,它得到Thread T1,它處理一些消息(由吞吐量在調度程序中設置),然後放開線程T1,這樣另一個Actor B可以再次使用T1。如果有更多線程可用,則T2將以相同樣式使用,從而允許多個參與者並行運行。

+0

謝謝..將研究它..我跑32測試與來自32個客戶每個演員接收100000消息.. 24線程完成處理100000消息,然後8線程處理他們的消息..注意到每個調度程序線程處理不同演員消息......需要找出爲什麼8個演員的處理速度與其他24個演員不相同(我使用8分鐘內的默認調度員,最小因數爲3--所以它分配了24個線程) – cbear