2

私は次のものを持っています:

val future = myActor ? Message

私のアクターでは、受信メッセージは次のようになります。

sender ! Response

次のことを行って応答を無視した場合、悪影響はありますか?

myActor ! Message

たぶん、ドキュメントでこれが述べられている場所を見逃しているだけです。値を返すメソッドのようなもので、呼び出し元は戻り値を何にも代入しませんか? 別のアクターからその呼び出しを行った場合、その結果、奇妙なスレッドの問題やメモリ リークが発生しますか? 私の単体テストは影響を受けていないようですが、それは一種の不自然です。問題を考えすぎているだけで、答えを見つけられないことを願っています。

4

1 に答える 1

7

With ask パターンResponseは、一時的な軽量アクター ( PromiseActorRef) によって受信されます。

スコープ内myActor ! Messageに暗黙的に存在する必要があります。この暗黙の に送信されます。このメッセージは、明示的に読み取るまでガベージ コレクションされません。ActorRefResponseActorRef

ActorRefスコープに暗黙的なものがない場合Actor.noSenderは使用され、Responseシステムの deadLetters に転送されます。

別のアクターからその呼び出しを行うとResponse、これはこの別のアクターのメッセージ ボックスに配信されます。

于 2013-08-07T04:09:35.947 に答える