线程中断
1.线程有自己决定是否中断。其他的线程只能给当前线程设置中断标志位。然后当前线程去检测是否中断。然后自行决定是否中断。
2.Thread.interrupted()
该方法用于检测线程是否中断,以及清除中断标志位。当第二次调用这个方法的时候就会返回false。
3.如果线程被中断,当我们执行Thread.sleep()的时候会抛出中断异常。
Thread thread = new Thread(() -> {
while (!Thread.interrupted()) {
System.out.println(1);
}
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
// try {
// Thread.sleep(4000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
//
});
thread.start();
// 一段时间以后
Thread.sleep(1000);
thread.interrupt();