Hiển thị trạng thái thread trong Java
Miêu tả vấn đề
Cách hiển thị trạng thái thread trong Java?
Giải pháp
Ví dụ sau minh họa cách hiển thị trạng thái thread bởi sử dụng phương thức isAlive() và getStatus() của lớp Thread trong Java.
class MyThread extends Thread{ boolean waiting= true; boolean ready= false; MyThread() { } public void run() { String thrdName = Thread.currentThread().getName(); System.out.println(thrdName + " starting."); while(waiting) System.out.println("waiting:"+waiting); System.out.println("waiting..."); startWait(); try { Thread.sleep(1000); } catch(Exception exc) { System.out.println(thrdName + " interrupted."); } System.out.println(thrdName + " terminating."); } synchronized void startWait() { try { while(!ready) wait(); } catch(InterruptedException exc) { System.out.println("wait() interrupted"); } } synchronized void notice() { ready = true; notify(); } } public class Main { public static void main(String args[]) throws Exception{ MyThread thrd = new MyThread(); thrd.setName("MyThread #1"); showThreadStatus(thrd); thrd.start(); Thread.sleep(50); showThreadStatus(thrd); thrd.waiting = false; Thread.sleep(50); showThreadStatus(thrd); thrd.notice(); Thread.sleep(50); showThreadStatus(thrd); while(thrd.isAlive()) System.out.println("alive"); showThreadStatus(thrd); } static void showThreadStatus(Thread thrd) { System.out.println(thrd.getName()+" Alive:" +thrd.isAlive()+" State:" + thrd.getState() ); } }
Kết quả
Code trên sẽ cho kết quả sau:
MyThread #1 Alive:false State:NEW MyThread #1 starting. waiting:true waiting:true alive alive MyThread #1 terminating. alive MyThread #1 Alive:false State:TERMINATED
Bài học Bài tập Java phổ biến tại hoconline.club:
thread_trong_java.jsp
Bài viết liên quan