3

私はプロジェクトの「ベア」ネットから始めています。

私はまだすべての素晴らしいjavadocを調べていますが、得られなかった点があります。

これまでのところ私が得たもの:

ブートストラップを開始し、サーバーをソケットポートにバインドするBossスレッドが1つありますか?ワーカースレッド(それらの多くである可能性があります)は、着信接続を処理し、適切なチャネルとパイプラインを作成しますか?

しかし、ExecutionHandlerがあります。これは、他のいくつかのスレッドをスパムする可能性もありますか?私のポイントは、10個のワーカースレッドがあり、corepoolsize = 16のExecutionHandlerがある場合、非常に重い負荷がかかると、システム上で160個の同時スレッドで終了する可能性があることを意味しますか?

申し訳ありませんが、質問はばかげているように感じますが、私はドキュメントのこの部分を理解しようとしています。

乾杯

4

1 に答える 1

10

上司と労働者に対するあなたの理解は正しいです。

ExecutionHandlerの場合は少し異なります。追加のThreadPoolへのExecutionHandlerハンズオブイベント処理。これは、ワーカースレッドを「ブロック」しないようにするのに役立ちます。ExecutionHandlerは、異なるチャネル間で共有する必要があり、ワーカー間でも共有する必要があります。

したがって、ワーカー数が10で、コアスレッドプールサイズが16の場合、26スレッド+ボススレッドになります。

これがそれを明らかにすることを願っています。

于 2012-05-03T06:16:37.537 に答える