如何檢查 Java 中的執行緒是否處於活動狀態



問題描述

如何檢查一個執行緒是否處於活動狀態?

解決方案

以下示例演示瞭如何透過擴充套件 Threda 類並使用 currentThread() 方法檢查執行緒是否處於活動狀態。

public class TwoThreadAlive extends Thread {
   public void run() {
      for (int i = 0; i < 10; i++) {
         printMsg();
      }
   }
   public void printMsg() {
      Thread t = Thread.currentThread();
      String name = t.getName();
      System.out.println("name = " + name);
   }
   public static void main(String[] args) {
      TwoThreadAlive tt = new TwoThreadAlive();
      tt.setName("Thread");
      System.out.println("before start(), tt.isAlive() = " + tt.isAlive());
      tt.start();
      System.out.println("just after start(), tt.isAlive() = " + tt.isAlive());
	   
      for (int i = 0; i < 10; i++) {
         tt.printMsg();
      }
      System.out.println("The end of main(), tt.isAlive()=" + tt.isAlive());
   }
}

結果

以上程式碼示例將產生以下結果。

before start(), tt.isAlive() = false
just after start(), tt.isAlive() = true
name = main
name = main
name = main
name = main
name = main
name = main
name = main
name = main
name = main
name = Thread
name = main
name = Thread
The end of main(), tt.isAlive() = true
name = Thread
name = Thread
name = Thread
name = Thread
name = Thread
name = Thread
name = Thread
name = Thread
java_threading.htm
廣告
© . All rights reserved.