4.1.4 大厂面试题中断机制考点
如何停止中断运行中的线程?
通过一个volatile变量实现
package com.nanjing.gulimall.zhouyimo.test;
import java.util.concurrent.TimeUnit;
/**
* @author zhou
* @version 1.0
* @date 2023/10/15 2:34 下午
*/
public class InterruptDemo {
static volatile boolean isStop = false; //volatile表示的变量具有可见性
public static void main(String[] args) {
new Thread(() -> {
while (true) {
if (isStop) {
System.out.println(Thread.currentThread().getName() + " isStop的值被改为true,t1程序停止");
break;
}
System.out.println("-----------hello volatile");
}
}, "t1").start();
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Thread(() -> {
isStop = true;
}, "t2").start();
}
}