Kiểm tra Thread dừng hay chưa trong Java



Miêu tả vấn đề

Cách kiểm tra một thread đã kết thúc hay chưa trong Java?

Giải pháp

Ví dụ sau minh họa cách kiểm tra một thread đã kết thúc hay chưa bởi kiểm tra phương thức isAlive() trong Java.

public class Main {
   public static void main(String[] argv) 
   throws Exception {
      Thread thread = new MyThread();
      thread.start();
      if (thread.isAlive()) {
         System.out.println("Thread has not finished");
      }
      else {
         System.out.println("Finished");
      }
      long delayMillis = 5000; 
      thread.join(delayMillis);
      if (thread.isAlive()) {
         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;
         }
      }
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

Thread has not finished
Finished

thread_trong_java.jsp