5

在编写 Scala RemoteActor 代码时,我注意到了一些陷阱:

  • 必须设置 RemoteActor.classLoader = getClass().getClassLoader() 以避免“java.lang.ClassNotFoundException”
  • 由于“支持远程参与者的 NetKernel(负责远程转发消息的设施)可以在远程参与者的代理(更具体地说,代理委托)有机会发送之前关闭的竞争条件,链接并不总是有效远程指示本地出口的消息。” (斯蒂芬·图)
  • RemoteActor.select 并不总是返回相同的委托(RemoteActor.select - 结果确定性?
  • 通过网络发送委托会阻止应用程序正常退出(RemoteActor unregister actor
  • 如果 RemoteActor.alive() 和 RemoteActor.register() 在动作之外使用,远程 Actor 不会终止。(见马格努斯的回答)

程序员还应该注意其他陷阱吗?

4

1 回答 1

2

这是另一个;当您定义您的演员时,您需要将 RemoteActor.alive() 和 RemoteActor.register() 调用放在您的 act 方法中,否则当您调用 exit() 时,演员不会终止;请参阅如何杀死 RemoteActor?

于 2010-07-25T19:43:22.097 回答