2016-04-27 14 views
0

私は質問にぶつかり、あなたの助けを求めています。Tomcat maxThreadの値のジレンマ

tomcatのmaxThreadカウント値は、Tomcatが提供できる同時リクエストの最大数を制御します。これは、スレッドの最大数が動作することを意味します。

ここでmaxThread = 2を設定し、現在2つのスレッドが同時に動作しているとします。スレッドの1つが2つの子スレッドを作成する場合(他のいくつかのAPIを呼び出します)。

私の質問: maxThread = 2の場合、4つのスレッド(2つの親と2つの子)が存在する可能性がありますか? はいの場合、maxThreadは何を制御しますか? このような場合はどうなりますか?

私は自分自身を説明することは困難です。

答えて

0

connectorのHTTP要求ごとに、Tomcatは1つのスレッド(たとえば、http-8080-thread1という名前のスレッド)を作成します。

maxThreadsの値は、これらのスレッドを制御します。 maxThreadsに達すると、いくつかの他のスレッドが存在するか、またはJVMに作成することができます。

また、すべての要求スレッドがビジー状態のときにキューに入れられる要求の数を設定するacceptCountもあります。

More details in tomcat documentation

+0

しかし、スレッドと接続の違いも覚えておく必要があります。接続の数は必ずしもスレッドの数に等しいとは限りません。 Tomcatには、NIOとBIOという2つのモードがあります。 http://stackoverflow.com/questions/24678661/tomcat-maxthreads-vs-maxconnections – Batiaev

+0

@Cédric-迅速な対応に感謝します。私はacceptCountとmaxConnectionのパラメータを少し知っています。 'maxThreads'プロパティが親スレッドのみのカウントを制御するかどうかを確認したいのですが。私はあなたがそれに同意していると感じています。あなたはこれを支持するいくつかの文書を共有することができますか? 文書でこれを取得できませんでした。 –