私は、接続プール接続を使用し、約1分間実行されるdbに対してクエリを実行するスレッドを持っています。ユーザーがアプリケーションからログアウトすると1分前にこのスレッドは無限ループに入り、決して解放されません。 ユーザーがログアウトボタンをクリックしたときに、すべてのスレッドが強制終了されるようにするにはどうすればよいですか?Javaスレッドが正しくリリースされました
-1
A
答えて
0
ユーザーがログアウトすると、フラグをfalse
に設定します。このフラグは、先行実行を停止するスレッドによってチェックされる必要があります。
いくつかのコードを表示すると便利です。
0
スレッドを作成しているメインクラスにシャットダウンフックを追加できます。 。
はメインクラスでは、この行を追加します:ちょうどここに例を挙げ
Runtime.getRuntime()addShutdownHook(新しいMessage());
静的クラスのメッセージは、スレッドを{
public void run() {
System.out.println("Bye.");
try {
// do your work here
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
0
は、まず、あなたが起動し、スレッド、スレッド自体を起動するコンポーネントを追跡する必要が伸びます。
第2に、これらを正しくシャットダウンする必要があります。ポーリング/ループするスレッドの場合、(おそらくフラグを設定することによって)それらのループを終了する必要があります。あなたはまた、割り込みでI/Oを待っている可能性のあるスレッドを割り込みし、その割り込みを適切に処理する必要があります。この頻繁に誤解された問題については、this article from Java Specialistを参照してください(基本的に、中断されたスレッドの割り込みフラグをリセットします...)
関連する問題
- 1. 最新のリリースでDraw9patchが正しく表示されない
- 2. デタッチされたスレッドのスタックが一度もリリースされない
- 3. スレッドがクラッシュした後にJavaアプリケーションが正しく動作しない
- 4. Task.Delay()がUIスレッドをリリースしますか?
- 5. スレッドはJava IRCボットで正しく動作しません
- 6. GUIスレッドがjQueryで正しく更新されない
- 7. Perlスレッドが正しく印刷されない
- 8. リリースされたオブジェクトにメッセージが送信されました(手動ではリリースされません)
- 9. Javaストリームでオプションが正しく再生されませんか?
- 10. SOAPActionが正しく設定されていません - Java
- 11. Javaのtcpソケットが正しく受信されません
- 12. Javaスイングキーバインディング - リリースされたキーのアクションがありません
- 13. すべてのファイルハンドルがJavaでリリースされたときを確認します
- 14. ブラケットが正しくネストされたコードエクササイズ
- 15. 終了方法アプリケーション出口のスレッドが正しく処理されます
- 16. Javaが正しくインストールされていませんか?その後、スレッドの例外最近「メイン」java.lang.NoSuchMethodErrorの
- 17. レルムサーバオブジェクトが正しくないスレッド例外
- 18. TestCase "test_Dialog_focusDestroy"がDojoリリース1.5で正しく機能しない
- 19. datavseリクエストのスラッシュが正しく入力されました
- 20. InspectorPackageが正しくロードされませんでした
- 21. regresio行が正しく表示されませんでした
- 22. Xamarin "XamarinShellPackage"が正しくロードされませんでした
- 23. Date.UTCが正しく表示されませんでした
- 24. インポートされたブレンダーモデルが正しく回転しません
- 25. ポリゴンが正しくデータベースに挿入されましたか?
- 26. GILがリリースされたら?
- 27. タイムスタンプが正しくJavaの
- 28. ウェブサイトのロケールが正しくクロールされたが、ひどく表示された
- 29. Javaスレッドが正しく動作していないようです
- 30. オブジェクトがリリースされたかどうかを確認してください。