1

アクアを使用しています。各一意のアクターが同じスレッドで処理されるように、アクターのセット (数千単位) をバインドする方法を考え出そうとしています。たとえば、私の OS には 24 のネイティブ スレッドがあり、それぞれが d1、d2、d3、.. dn などの一意のデータを処理する 1000 のアクターがあり、常に d1 を同じスレッド 1 で処理する必要があります。 - 24 個のスレッドを割り当て、スレッドへの ID のマップを維持し、ラウンド ロビン方式で割り当てます。例: 2 スレッド、5 データ d1、d3、d5 th1 d2、d4 th2

私は Akka のドキュメントを調べましたが、4 つのディスパッチャーのうち、私のニーズを満たすものはありませんでした。最も近いのは PinnedDispatcher ですが、ネイティブ スレッドを作成し続け、結果は OOME になります。

自分の Dispatcher を作成する以外に、これについて何か考えはありますか?

ありがとうございました

4

1 に答える 1

3

独自のディスパッチャを作成する必要はありません。ExecutorServiceConfigurator を使用して任意のディスパッチャに提供する独自の ExecutorService を作成するだけで済みます。これにより、アクターの実行がスケジュールされたときに、それを「その」スレッドに送信できます。基本的に、シングルスレッドのExecutorServicesのマップを保持できます

それが役立つことを願っています!

乾杯、√</p>

于 2012-07-04T17:31:49.200 に答える