采用interrupt()+ 检测isInterrupted() / interrupted()异常捕获
package com;
public class MyThread extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
for (int i = 0; i < 500000; i++) {
if (this.interrupted()) {
System.out.println("已经是停止状态了,我要退出!");
throw new InterruptedException();
}
System.out.println("i=" + (i + 1));
}
} catch (InterruptedException e) {
System.out.println("进MyThread.java run 方法的catch了");
e.printStackTrace();
}
}
}
package com;
public class Run {
public static void main(String[] args) {
try {
MyThread thread = new MyThread();
thread.start();
Thread.sleep(1000);
thread.interrupt();
System.out.println("是否停止1?="+thread.interrupted());
System.out.println("是否停止1?="+thread.interrupted());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

浙公网安备 33010602011771号