0

开始演员后

val a = actor {
  loop {
    react {
      case "end" => exit
      ...
    }
  }
}

并向其发送“结束”消息

a ! "end"

我想确保线程完成。怎么可能加入?

4

2 回答 2

2

据我所知,不能像 Java 方式那样明确地加入演员。这个概念是引入基于事件的编程,所以它应该只对事件做出反应。但是,您可以设置出口并通过 . 将初始演员 (A) 链接到结束演员 (B) link。这样,当 B 结束时,初始参与者 A 会收到一个事件。如果你没有收到任何事件,你就知道演员没有终止。请参阅此处的线程:https ://stackoverflow.com/a/4304602/999865

如果您不关心资源并且知道线程将终止,您也可以让参与者继承自DaemonActor. 守护进程不会阻塞任何系统资源。

于 2012-11-08T09:10:00.580 回答
2

在我看来,做你想做的事情的“演员方式”实际上是让你的演员回复请求者的消息“完成”,所以它可以采取行动。这样它仍然是异步事件处理

于 2012-11-08T10:16:07.987 回答