在编写Scala RemoteActor代码时,我发现了一些陷阱:
- RemoteActor.classLoader = getClass()。必须设置getClassLoader()以避免“java.lang.ClassNotFoundException”
- 链接并不总是有效,因为“在远程操作员的代理(更具体地说,代理委托)之前,支持远程操作员的NetKernel(负责远程转发消息的设施)可以关闭的竞争条件有机会远程发送信息,表明当地的出口。“ (Stephan Tu)
- RemoteActor.select并不总是返回相同的委托(RemoteActor.select - result deterministic?)
- 通过网络发送代理会阻止应用程序正常退出(RemoteActor unregister actor)
- 如果在act之外使用RemoteActor.alive()和RemoteActor.register(),则远程Actor不会终止。 (见马格努斯的答案)
程序员应该注意其他任何陷阱吗?