5

俳優モデル初心者です。アクター モデルのアクターのライフサイクルを説明してくれる人はいますか? ドキュメントで答えを探していましたが、満足のいくものは見つかりませんでした。

メソッドを完了した後にアクターが何をするかに興味があります。アクターはonReceive()まだ生きているのでしょうか、それとも死んでいるのでしょうか? 「死なないで、次のメッセージを待って」と言うように、その寿命を制御できますか? たとえば、ラウンド ロビン ルーターを使用して 5 つのアクターを設定すると、常に同じ5 つのアクターに作業が分散されますか? または、アクターはメッセージがあるたびに破棄および作成されますが、最大制限は常に 5 です。

ありがとう!

4

1 に答える 1

8

は、Actor明示的に「kill」(またはクラッシュ) しない限り、常に生きています。メッセージを受信すると、スレッドを「使用」し、メッセージを処理してから、「アイドル」状態に戻ります。別のメッセージを受信すると、再び「アクティブ」になります。

5 秒のラウンドロビン ルーターの場合Actor、同じ 5Actor秒です。ルーターは、メッセージがルーターに送信されるたびに新しいルーターを作成しません。

アクター モデルは、「分離された可変性」(同時実行) モデルに従います。これは、状態をそれ自体にのみカプセル化します。他Actorの s は、この状態に直接触れることができず、メッセージ パッシングを介してのみ対話することができます。状態を維持するには、Actorが「生きている」必要があります。

于 2012-10-15T02:41:43.357 に答える