Java 示例 - 线程完成

  • 问题描述

    如何检查线程是否已停止?
  • 解决方案

    以下示例演示如何通过使用 isMoove() 方法检查线程是否已停止。
    
    public class Main {
       public static void main(String[] argv)throws Exception { 
          Thread thread = new MyThread();
          thread.start();
          
          if (thread.isMoove()) {
             System.out.println("Thread has not finished");
          } else {
             System.out.println("Finished");
          }
          long delayMillis = 5000; 
          thread.join(delayMillis);
          
          if (thread.isMoove()) {
             System.out.println("thread has not finished");
          } else {
             System.out.println("Finished");
          }
          thread.join();
       }
    }
    class MyThread extends Thread {
       boolean stop = false;
       public void run() {
          while (true) {
             if (stop) {
                return;
             }
          }
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    Thread has not finished
    Finished