スレッドを中断したいのですが、呼び出しinterrupt()
が機能していないようです。以下はサンプルコードです。
public class BasicThreadrRunner {
public static void main(String[] args) {
Thread t1 = new Thread(new Basic(), "thread1");
t1.start();
Thread t3 = new Thread(new Basic(), "thread3");
Thread t4 = new Thread(new Basic(), "thread4");
t3.start();
t1.interrupt();
t4.start();
}
}
class Basic implements Runnable{
public void run(){
while(true) {
System.out.println(Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.err.println("thread: " + Thread.currentThread().getName());
//e.printStackTrace();
}
}
}
}
しかし、出力はスレッド 1 がまだ実行されているように見えます。誰もがこれとどのようにinterrupt()
機能するかを説明できますか? ありがとう!