我正在尝试将消息(例如“msg”)从一个演员转发到随机选择的另一个演员。
除非随机选择的演员再次是较早的演员之一,否则它工作得很好。当这种情况发生时,Scala 会无限期地等待。我希望程序传递消息而不管它是否已经接收(即,演员之间的消息无限循环)
Actor A ---- msg ---> Actor B
Actor B ---- msg ---> Actor C
Actor C ---- msg ---> Actor A
在此之后,程序不会退出,也不会继续传递消息。你能指出我错在哪里吗?
class MyActor extends Actor {
def act() {
react{
case str : String =>
// Picking a random actor
val randNo : Int = Random.nextInt(5)
actorArray(randNo) ! str
}
}
}
谢谢,女士