2016-05-12 85 views
2

我讀了關於dispatchers的akka​​文檔。但是我沒有正確理解,例如,如果我有2個演員,其中default-disptacher運行。我在演員中發送了幾條消息,好吧,然後default-dispatcher從郵箱中收到消息,並???哪裏的消息在default-dispatcher或在哪裏處理?如果我在參與者(與cource的context.disptacher)中運行一些塊操作,並在線程池中配置1個線程的調度程序,這將停止消息處理?akka在哪裏處理消息?

謝謝

回答

1

我會盡力解釋它,我會盡我所能。

dispatchers只是安排code in the actor system

按照你的例子,如果你的演員發送一條消息給演員(就像你對它的郵箱說的那樣),在將來的某個時刻,調度員會分配一個線程給演員來獲取該消息並運行它。 代碼總是在您定義的演員中運行,但在調度程序提供的線程中運行。

並且在您定義自己的調度程序爲fixed-pool-size = 1並阻止該線程後,調度程序將在keep-alive-time中定義的時間量後恢復該線程。