当处理一条消息时,是否有可能向另一个演员发送消息并等待该演员回复,然后消耗回复的消息,然后继续,如下所示,这是可行的吗?演员:可能发送和接收嵌套在一个接收
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