0

現在のスレッドの名前を出力しているJavaサーブレットがあります。ブラウザの更新ボタンを何度押しても、リクエストを処理しているのは常に同じスレッドです。スレッドは常にhttp--127.0.0.1-8080-1. これは、すべてのリクエストを処理しているプール内のスレッドが 1 つしかないということですか?

私が Java EE のコースに参加したときに覚えていることは、更新ボタンを何度も押したときに、プール内にさまざまなスレッドがリクエストを処理していたことです。出力は次のようになります。

http--127.0.0.1-8080-1
http--127.0.0.1-8080-3
http--127.0.0.1-8080-2
http--127.0.0.1-8080-5

今では常にhttp--127.0.0.1-8080-1です。

4

1 に答える 1

2

JBoss 4.2.3、JBoss 6.0.0、および JBoss 7.1.1 で確認しました。スレッドが変更される場合と変更されない場合があります。

異なるブラウザー インスタンスから同じ Web アプリにアクセスすると、最初のブラウザーでは変更されず、別のブラウザーでは変更されました。

Resources / JBoss Web / Connectors / にある JBoss 6.0.0 管理コンソールで、http://127.0.0:8080アクティブなスレッドの数と合計スレッド数を確認できます。私の場合、アクティブ = 2 でカウント = 7 です。JBoss 7.1.1 管理コンソールでこの情報を見つけられませんでした。しかし、2 つのブラウザー インスタンスを使用すると、少なくとも 2 つの異なるスレッドが使用されていることがわかりました。

そのため、プールからどのスレッドが選択されているかはおそらく決定論的ではなく、1 つまたは 2 つのブラウザー セッションでは十分なトラフィックが作成されません。

于 2013-06-19T19:50:38.367 に答える