5

Scala RemoteActorコードを書いているときに、いくつかの落とし穴に気づきました。

  • 「java.lang.ClassNotFoundException」を回避するには、RemoteActor.classLoader = getClass()。getClassLoader()を設定する必要があります
  • リンクは、「リモートアクターのプロキシ(より具体的には、プロキシデリゲート)が送信する前に、リモートアクターをバックアップするNetKernel(リモートでメッセージを転送する機能)が閉じることができる競合状態のため、常に機能するとは限りません。ローカル出口をリモートで示すメッセージ。」(ステファン・トゥ)
  • RemoteActor.selectは、常に同じデリゲートを返すとは限りません(RemoteActor.select-結果は決定論的ですか?
  • ネットワーク経由でデリゲートを送信すると、アプリケーションが正常に終了しなくなります(RemoteActorの登録解除アクター
  • RemoteActor.alive()およびRemoteActor.register()がactの外部で使用されている場合、リモートアクターは終了しません。(マグナスの答えを参照してください)

プログラマーが知っておくべき他の落とし穴はありますか?

4

1 に答える 1

2

もう1つあります。アクターを定義するときは、RemoteActor.alive()およびRemoteActor.register()呼び出しをactメソッド内に配置する必要があります。そうしないと、exit()を呼び出したときにアクターが終了しません。RemoteActorを強制終了するにはどうすればよいですか?を参照してください。

于 2010-07-25T19:43:22.097 に答える