とにかくスレッドを強制終了させたり、すぐにスレッドを中断させたりすることがあります。
私のスレッドのように、実行に時間がかかります(2〜4秒)メソッドを呼び出します。このメソッドはwhile(boolean flag)ブロックにあるので、メインスレッドから中断できます。Javaの別のスレッドからすぐにスレッドを強制終了するには?
しかし、問題は、私がそれを中断した場合です。実行中のループが終了するまで待ってから次の条件チェックを行うと、実行を停止します。
私はそれがすぐに停止したい。これを行うためにとにかくありますか?
は、クラス間で変数を共有することは可能です。または、スレッド内のwhileループの条件チェックとして使用されるブール型の戻り値型メソッドを作成し、他のクラスから割り込むことができますか?これは賢明な考えですか? –
スレッドを中断する最も明白な方法は、Thread.interrupt()メソッドを使用することです。多くのブロッキング操作がすでにこれをサポートしています。 whileループでThread.interrupted()を使用しているかどうかをテストできます。 (フィールドを追加する必要はありません)。 –
http://download.oracle.com/javase/tutorial/essential/concurrency/interrupt.html –