質問: javaのスレッドについて教えてください。 セッションを保持するWebアプリケーションの場合、1つのセッションが 1つのスレッドを占有すると認識していたのですが正しいでしょうか? 例えば、Webサーバ側の設定でスレッド数のMAXを50と設定してある場合、 同時接続は50人までとなり、51人目の人は誰かのセッションが切れるまで 待ち状態になる(接続ができない)と認識していましたが正しいでしょうか? 今作っているWebアプリケーションで、複数のブラウザ(マシン)から サイトに同時に接続してテストを行っているのですが、アイドルスレッド 数が接続しているブラウザの数だけ減りません。 すると、Webアプリ側に問題がある可能性も考えられますか? もしくは私のスレッドとセッションに関する認識が間違っていますか? よろしくお願いいたします。
回答: 認識が間違っている。 スレッドとセッションに直接の関係はない。 セッションは複数のリクエストについて情報を共有するための仕組みだが、各リクエストが同一のスレッドである必要はない。 スレッドはJava引いてはOSの機能であるが、セッションはTomcatの仕組みに過ぎない。 セッションがどのような仕組みかを理解すると良いだろう。