Java 示例 - 停止线程

  • 问题描述

    如何停止线程一段时间?
  • 解决方案

    以下示例演示了如何通过在 Timer 类的方法的帮助下创建用户定义的方法 run() 来停止线程。
    
    import java.util.Timer;
    import java.util.TimerTask;
    class CanStop extends Thread {
       private volatile boolean stop = false;
       private int counter = 0;
       
       public void run() {
          while (!stop && counter < 10000) {
             System.out.println(counter++);
          }
          if (stop)
          System.out.println("Detected stop"); 
       }
       public void requestStop() {
          stop = true;
       }
    }
    public class Stopping {
       public static void main(String[] args) {
          final CanStop stoppable = new CanStop();
          stoppable.start();
          
          new Timer(true).schedule(new TimerTask() {
             public void run() {
                System.out.println("Requesting stop");
                stoppable.requestStop();
             }
          }, 
          350);
       }
    } 
    
  • 结果

    上面的代码示例将产生以下结果。
    
    Detected stop