打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java状态监测

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

author by w3cschool.cc

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

aliveMyThread #1 terminating.alive……

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
线程最最基础的知识
Java并发之线程中断
ThreadGroup
C#信号量用法简单示例
一道关于java线程的面试题
Java Thread.join()
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服