1

サブプロセスをフォークして、チャネルからの受信データをフィードし、結果をクライアントにストリームバックしたいと考えています。これまでのところ、最善の解決策は、別のスレッドをフォークしてプロセスからの出力を読み取り、それをチャネルに書き戻すアップストリーム ハンドラーの前にOrderedMemoryAwareThreadPoolExecutorを配置することです。これを行うより良い方法はありますか?

4

1 に答える 1

0

独自のスレッド プールを作成して、ジョブ ハンドラで新しいスレッドを送信できます。OrderedMemoryAwareThreadPoolExecutor は、標準の excutorservice のラッパーです。その利点は、メモリ コストを計算できることです。独自のスレッド プールを使用すると、独自のロジックをより適切に制御できます。netty チュートリアルで説明されているように、ジョブ処理のために新しいスレッドをフォークする必要があります。I/O は、netty チャネル内に隠されているソケットにバインドされています。チャネルまたはチャネル コンテキストをその新しいスレッドに渡す必要があります。ソケットは常にそこにあり、非同期 IO は新しいスレッドでソケットへの読み取り/書き込みによって実行されます。

于 2012-09-21T09:03:04.177 に答える