一个简单的带中断策略的Thread用例
2018-08-31 本文已影响0人
颤抖的闪电
public class AnalyzeThread extends Thread {
private volatile boolean finished = false; // volatile条件变量
public void stopMe() {
finished = true; // 发出停止信号
interrupt();
}
@Override
public void run() {
if (!finished && !isInterrupted()) {
//doSomething
if (finished || isInterrupted()) { //线程中断
return;
}
}
}
}
使用:
AnalyzeThread analyzeThread = new AnalyzeThread();//创建线程
analyzeThread.start();//开启线程
analyzeThread.stopMe();//停止线程
如何优雅的"停止"一个正在运行的JAVA线程
如何正确地停止一个线程?
关闭线程的正确方法:“优雅”的中断
Java并发:终止线程和关闭线程池