java如何检测线程状态代码实例
如何通过继承 Thread 类创建一个线程并使用 currentThread.getName() 方法来监测线程的状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
package com.gaodaima; public class ThreadAliveTest extends Thread { boolean waiting = true; boolean ready = false; ThreadAliveTest() { } 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(); } static void showThreadStatus(Thread thrd) { System.out.println(thrd.getName() + "Alive:=" + thrd.isAlive() + " State:=" + thrd.getState()); } public static void main(String[] args) throws InterruptedException { ThreadAliveTest thrd = new ThreadAliveTest(); thrd.setName("ThreadAliveTest线程"); showThreadStatus(thrd); thrd.start(); Thread.sleep(100); showThreadStatus(thrd); thrd.waiting = false; Thread.sleep(100); showThreadStatus(thrd); thrd.notice(); Thread.sleep(100); showThreadStatus(thrd); while (thrd.isAlive()) System.out.println("alive"); showThreadStatus(thrd); } } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
ThreadAliveTest线程Alive:=false State:=NEW ThreadAliveTest线程 starting. waiting:true ... waiting:true ThreadAliveTest线程Alive:=true State:=RUNNABLE waiting:true waiting:true waiting... ThreadAliveTest线程Alive:=true State:=WAITING ThreadAliveTest线程Alive:=true State:=TIMED_WAITING alive ... alive ThreadAliveTest线程 terminating. alive ... alive ThreadAliveTest线程Alive:=false State:=TERMINATED |
原创文章,转载请注明: 转载自搞代码
本文链接地址: java如何检测线程状态代码实例

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~
发表评论