一个简单的带中断策略的Thread用例

    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并发:终止线程和关闭线程池

你可能感兴趣的:(一个简单的带中断策略的Thread用例)