1、volatile改进
class Test {
private volatile boolean stop = false;
//启动监控线程
public void start() {
monitorThread = new Thread(() -> {
while(true) {
Thread current = Thread.currentThread();
//是否被打断
if(stop) {
log.debug("料理后事");
break;
}
if(current.isInterrupted()){
log.debug("料理后事");
break;
}
try{
Thread.sleep(1000);//情况1
log.debug("执行监控记录");//情况2
} catch (InterruptedException e) {
e.printStatckTrace();
//重新设置打断标记
currnt.interrupt();
}
}
},"monitor");
}
//停止监控线程
public void stop() {
stop = true;
}
}