2014-01-27 18 views
1

定義Actor類時,我看不到任何明顯的方式來設置線程名稱。Scala:如何設置演員線程名稱

任何人都可以告訴我什麼是正確的做法嗎?

感謝 德

+0

我不是指Akka Actor類,而是指的是雖然基於Akka庫的scala Actor類如果我理解正確,但它不一樣?我問的原因是我想設置線程名稱是爲了調試目的,以便闡明日誌文件中的相關線程。 – user79074

+1

'scala.actors'已被棄用,並且與Akka actors沒有任何關係。 – Ryan

+0

那麼我應該在這種情況下使用阿卡演員庫嗎? – user79074

回答

3

阿卡演員並不等同於線程,即使他們的代碼是在一個線程池來執行,如果你指的是演員的名字,你可以通過(從Akka documentation)設置:

class FirstActor extends Actor { 
    val child = context.actorOf(Props[MyActor], name = "myChild") 
    // plus some behavior ... 
} 

每個演員都有一條簡單的路徑,您可以查詢獲取ActorRef,該ActorRef是真正演員的代理。 如果您需要關於演員參考和路徑的更多信息,您可以閱讀Akka docs的另一部分內容。

+2

如果你創建了你自己的ExecutionContext,那麼你可以給它的線程添加你想要的任何名字,但是你仍然會遇到流動的actor->線程映射的問題,除非你把它們全部釘住,以至於失敗許多好處。 –

+0

@RobStarling是的,我認爲Akka有這些鉤子,但我認爲OP已經太多了讀取! :) –