Javaの例 - スレッドを終了
Javaのスレッドは、もともとスレッドを終了するには、stop()メソッドで提供されるが、この方法は、それが一般的に推奨されていない、安全ではありません。
本稿では、割り込みメソッド割り込みスレッドの使用を示しています。
スレッドを終了する割り込みメソッドを使用すると、二つの状況に分けることができます。
- (1)スレッドは、スリープ方式を用いるように、ブロックされています。
- (!isInterruptedを()){...}ながら、(2)のスレッドが中断されたかどうかを決定するために使用します。
第二の場合には、スレッドが終了する一方interruptメソッドを使用して最初のケースでは、睡眠方法は、InterruptedExceptionある例外をスローします。 次のコードは、最初のケースで割り込みメソッドの使用方法を示します。
/* author by w3cschool.cc ThreadInterrupt.java */ public class ThreadInterrupt extends Thread { public void run() { try { sleep(50000); // 延迟50秒 } catch (InterruptedException e) { System.out.println(e.getMessage()); } } public static void main(String[] args) throws Exception { Thread thread = new ThreadInterrupt(); thread.start(); System.out.println("在50秒之内按任意键中断线程!"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("线程已经退出!"); } }
上記のコードは出力され実行されます。
在50秒之内按任意键中断线程! sleep interrupted 线程已经退出!