广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java怎么监测线程的状态?_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-24分类:Java技术浏览:911


导读:Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么Java怎么监测线程的状态?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么Java怎么监测线程的状态?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

以下实例演示了如何通过继承 Thread 类并使用 currentThread.getName() 方法来监测线程的状态:

/*
author by w3cschool.cn
Main.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());
  }
}

以上代码运行输出结果为:

……
alive
alive
MyThread #1 terminating.
alive
……

想知道更多关于Java的资讯,联系在线客服,或者来惠州北大青鸟新方舟校区了解。

Java14.png

Java


Java技术排行
标签列表
网站分类
文章归档
最近发表