线程的中断
3种方法
- void interrupt()
该方法会为当前线程添加中断标识
- boolean isInterrupted()
判断其线程是否添加过中断标识,添加过则返回true,没添加过则返回false
- boolean interrupted()
判断其是否添加过,是返回true不是会返回false,同时会复位
public class DemoInterrupt implements Runnable{
public static int i=0;
public static void main(String[] args) {
DemoInterrupt demoInterrupt = new DemoInterrupt();
Thread th = new Thread(demoInterrupt);
th.start();
System.out.println("123");
th.interrupt();
while (true){
System.out.println("主线程真在运行");
if (th.isInterrupted()){
break;
}
}
}
@Override
public void run() {
while (true){
System.out.println("该线程正在执行"+i+"次");
if (Thread.currentThread().isInterrupted()){
System.out.println(Thread.currentThread().isInterrupted());
break;
}
}
}
}
注意事项
当一个线程处于休眠的时候为这个线程添加中断,会出现异常,同时复位