- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Threadの終了)
Threadの終了方法についての質問
このQ&Aのポイント
- JavaのThreadを終了させる方法についての質問です。
- スレッドblinker内でループが回っていない場合にThreadを止める方法を教えてください。
- ClassAで表示されたGUIを閉じる前にThreadを終了させたいですが、ループを回すことができずに困っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>(*)ここでThread2を終了させたい. というのは、Thread2の状態にかかわらず、即座に終了したいと いうことでしょうか? その場合、推奨されていない「stop()」メソッドで危険な止め方を するしかないと思います。 子スレッド(Thread2)の安全な終了のさせ方としては、 基本的に親スレッド(Thread1)から「終了させる」という概念はありません。 Thread2の処理が終わり、(この場合は、SWTのメッセージループが終了した時)、returnした時点で、Thread2は終了します。 Thread1は、Thread2を終了させるのではなく、Thread2が終わるのを 待たなくてはなりません。 待ち合わせの方法は、ヘルプをご参照してみてはどうでしょうか?
お礼
どうもありがとうございました. 今回書かせて頂いた例ではThread1で5秒の停止をしておりますが, 実際はそこで様々な処理(要する時間は予測不可能)をしており, それが終わり次第Thread2で立ち上げているGUI(ダイアログ的に使用しています)を閉じたいのです. Thread2で立ち上がっているGUIを閉じないと Thread2は終わらないのですが, Thread2の状態に関わらず即座に終了させたいので, 他スレッドから止める方法を探していた次第です. 方法はなさそうなので,stop()による停止を検討してみます.