ドキュメントには、利用可能なさまざまなタイプのエグゼキューターに関する詳細は記載されていません。私が望むのは、netty 3 にあった MemoryAwareThreadPoolExecutor のように、構成可能なスレッド プールに基づくエグゼキュータを用意することです。
どうすればいいですか?
ドキュメントには、利用可能なさまざまなタイプのエグゼキューターに関する詳細は記載されていません。私が望むのは、netty 3 にあった MemoryAwareThreadPoolExecutor のように、構成可能なスレッド プールに基づくエグゼキュータを用意することです。
どうすればいいですか?
EventExecutorGroup
パイプラインにハンドラーを追加する場合、ハンドラーと共に を指定できます。
EventExecutorGroup executor = new DefaultEventExecutorGroup(...);
...
ChannelPipeline p = ch.pipeline();
p.addLast(executor, new MyHandler());
EventExecutorGroup
OrderedMemoryAwareThreadPoolExecutor
メモリ制約を適用しない点を除いて、 に似ています。メモリの制約を適用するには、独自のハンドラーを実装する必要があります。これMemoryAwareThreadPoolExecutor
はあまり効率的ではなく、多くの場合、パフォーマンスの問題がありました。
MemoryAwareThreadPoolExecutor
Netty 4 のすべてのハンドラー メソッドは、同じ接続に対して順次呼び出されるため、 に代わるものはありません。順序付けされていない実行が必要な場合は、タスクをjava.util.concurrent.Executor
. この決定は意図的なものです。それ以外の場合、ハンドラの実装はスレッド セーフを消費できません。