strategy的容器.akka保證所有actor都隻運作在自己的輕量級線程,并一次處理一個消息,這樣程式員就不用處理同步、競态
為了防止actor對象被直接的通路和操作,是以actors通過actorref來間接交流。message可以通過如下方式傳遞:
! (“tell”) - 發送message并馬上傳回
? (“ask”) - 發送message并傳回future
actor處理消息的方法吧~
所有收到的消息,會進入actor的mailbox隊列。預設是fifo。
每一個actor,都是潛在的監控者。actor會自動監控執行子任務的actor.children被放在context中,通過<code>context.actorof(...))</code>或者<code>context.stop(child))</code>操作children.這些操作都是異步的,是以相應非常快。
一旦actor意外終止,比如失敗了。它會釋放所有資源,将未處理的messages發送給system的dead letter mailbox.這些message将由eventstream處理。
為什麼不把dead letter全部丢掉呢?dead letter主要用來debug