假设我有两种类型的演员:Master
和Slave
我向Slaves派遣新职位,等待他们的回复并处理回复。一旦所有奴隶完成,我应该如何完成Master
循环?
例如:
class Slave extends Actor {
def act() {
loop { react {
...
sender ! FinishedAll // send mesage to the master
...
} }
}
}
class Master extends Actor {
loop { react {
...
case FinishedAll => exit // grrr!
...
}
我从Scala和Actors开始,所以答案可能很简单:)
答案 0 :(得分:5)
class Master extends Actor {
def act() {
var finished = false
loopWhile( !finished ) { react {
...
case FinishedAll => finished = true
...
}}
}
}
当然,如果你等待几个奴隶,你需要倒数未完成的奴隶的数量,以确定何时完成主要演员。