0

サーブレットで自分のスレッド(デーモンではない)を開始するとします(springMVCアプリのコントローラーまたはStrutsアクションコントローラーにすることができます):

  1. アクションがその処理で完了し、応答をプッシュしたいと仮定しましょう。開始したスレッドがまだ実行されている場合でも、これは発生しますか? 基本的に私が知りたいのは、スレッドが応答をプッシュする作業が完了するまでコンテナが待機するかどうかです。

  2. 上記で仮定すると、コンテナーはスレッドが応答をプッシュするのを待機しません。バックグラウンド スレッドがこの特定の要求を処理するために生成されたサーブレット スレッドを取得するまで待機するか、カスタム スレッドが実行された場合にのみこのスレッドを取得します。仕事は終わった?

4

1 に答える 1

0

サーブレット スレッドによって生成されたカスタム スレッドは、他のスレッドと何ら変わりはありません。独立した並列実行フローです。サーブレット スレッドは、生成されたカスタム スレッドを気にせず、実行を続けます。

そのため、カスタム スレッドが生成されていないかのように応答がブラウザーに送信され、生成されたカスタム スレッドがまだ実行されているかどうかは関係ありません。

サーブレット スレッドが要求の処理と応答の送信を完了すると、プールに戻り、別の要求の処理を開始できます。繰り返しますが、カスタム スレッドが生成されたかどうか、およびこのカスタム スレッドがまだ実行されているかどうかは関係ありません。

于 2012-09-12T09:39:11.877 に答える