當處理一條消息時,是否有可能向另一個演員發送消息並等待該演員回覆,然後消耗回覆的消息,然後繼續,如下所示,這是可行的嗎?演員:可能發送和接收嵌套在一個接收
val lineMap=HashMap[String,Int]()
receive {
case bigTaskMap=>
for (line <-readSomeFile){
if(lineMap.get(line)==None){
anotherActor!line // that actor will reply a hashmap which contain the key for line
receive {
case x:HashMap => lineMap=x
}
}
lineMap.get(line) // use that value to do further work
}
}
我認爲你應該查找成爲/不成立或「問」。也就是說,如果是阿卡演員。在scala演員中,你只需使用「val reply = actor!?message」 – Felix 2013-04-27 14:30:28
這裏是一個鏈接,其中包含關於「ask」的詳細信息,它返回一個未來,它允許你阻止並等待回覆:http://doc.akka。 IO /文檔/阿卡/快照/斯卡拉/ actors.html – Felix 2013-04-27 14:33:23