2

次の記述は正しいですか、そうでなければどのように改善できますか?

Akkaアクターにメッセージが送信されると、ジョブがエグゼキュータに送信されます。フリースレッドがある場合、アクターのロックを取得するジョブを呼び出します(可能な場合は、別のジョブが実行されます)。次に receive、アクターのメソッドが呼び出され、完了すると、ジョブは破棄され、スレッドがプールに戻されます。その後、このサイクルが繰り返されます。並行スレッドに関連するすべての複雑な作業はAkkaによって処理されるため、プログラマーはビジネス上の問題の解決に集中できます。

4

1 に答える 1

8

より正確なものは次のとおりです。

メッセージがアクターに送信されると、メールボックスと呼ばれるこのアクターのキューに配置されます。同時に、メールボックスに保留中のメッセージがある数百または数千のアクターが存在する可能性があります。Akkaは、限られた数のワーカースレッドを使用して、そのようなアクターのサブセットを選択し、receiveメールボックスからのすべてのメッセージを時系列でメソッドを呼び出します。

複数のスレッドが同じアクターを処理することはありません。また、Akkaは、メールボックスからのメッセージの処理を中断し、公平を保ち、飢餓を回避するために別のアクターを選択することを決定する場合があります。呼び出しごとに1つのスレッドが必要なためreceive、このメソッドはブロック、待機、またはスリープしないようにする必要があります。

于 2013-02-07T22:35:55.443 に答える