2016-05-12 8 views
2

私はdispatchersについてakkaのドキュメントを読んでいます。しかし、私が正しく理解していない、例えば、私はdefault-disptacherで実行する2つの俳優がある場合。私は俳優の中でいくつかのメッセージを送っています。それでは、default-dispatcherメールボックスからメッセージを取得しますか?メッセージはdefault-dispatcherで処理されますか?私が俳優(context.disptacherのcourceを使って)でいくつかのブロック操作を実行し、スレッドプール内の1つのスレッドでディスパッチャを設定すると、これはメッセージ処理を停止しますか?akkaどこのメッセージが処理されますか?

ありがとうございました

答えて

1

私はできる限り最高に説明しようとします。

dispatchersは、code in the actor systemをスケジュールするだけです。

例の後、あなたの俳優が(あなたのメールボックスに言ったように)アクターにメッセージを送信すると、ディスパッチャーは将来そのアクターにスレッドを割り当ててそのメッセージを取得して実行します。 コードは常に定義したアクタで実行されますが、ディスパッチャによって提供されるスレッドで実行されます。

fixed-pool-size = 1で独自のディスパッチャを定義し、そのスレッドをブロックする場合、ディスパッチャはkeep-alive-timeで定義された時間が経過した後にそのスレッドを回復します。

関連する問題