OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Servletのスレッドを終了させたい

  • すぐに回答を!
  • 質問No.138566
  • 閲覧数381
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 34% (44/127)

通常、一つのServletに対して、同一のsession idで(一つのクライアントで)複数並列処理します。

しかし、それじゃ都合が悪いので、一つのServletに対してはsession id毎に一つのスレッドしか発生しないようにしたいと思っています。ただ、あるスレッドが処理している最中にリクエストを受け付けたら、既に動いているスレッドを強制終了させて、後のリクエストのみを処理させたいと思っています。

が、なかなかいい案が思い浮かばず苦悩しています。

要求条件を整理すると次のようになります。
・一つのServletに対して、一つのsession idで一つのスレッドだけしか処理しないようにしたい。
・最後に受け付けたリクエストを活かし、処理中のスレッドは終了させたい。

二つ目の条件を満たすためには、一時的に二つのスレッドが発生することになると思っています。

皆様のお知恵をおかしください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル3

ベストアンサー率 0% (0/0)

ThreadGroup(スレッドグループ)を使うのはどうでしょうか? 詳細は、ThreadGroupクラスのリファレンスを見てください。 スレッドグループを取得し、現在のアクティブなスレッドを取得もしくは 破棄し、カレントのリクエストをいかす。というような処理をすれば、 この2点は実現できそうな気がします。 ちなみに、 現在のスレッドからスレッドグループを取得する方法は、 ...続きを読む
ThreadGroup(スレッドグループ)を使うのはどうでしょうか?
詳細は、ThreadGroupクラスのリファレンスを見てください。


スレッドグループを取得し、現在のアクティブなスレッドを取得もしくは
破棄し、カレントのリクエストをいかす。というような処理をすれば、
この2点は実現できそうな気がします。

ちなみに、

現在のスレッドからスレッドグループを取得する方法は、

ThreadGroup grp = Thread.currentThread().getThreadGroup()で行えます。

あとは、スレッドグループからアクティブなスレッド数や
スレッドの参照取得、等いろいろ制御ができるので、
これを応用してこの2点を実現できそうな気がしますが。

アドバイスになりましたでしょうか?


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ