Java 实例 - 状态监测

Java 教程 · 2019-02-11 23:27:51

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

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 教程 文章: https://www.codercto.com/courses/l/12.html

查看所有标签

C++数据结构与算法

C++数据结构与算法

[美]乔兹德克(Adam Drozdek) / 徐丹、吴伟敏 / 清华大学出版社 / 2014-10-1 / 63.00元

本书全面系统地介绍了数据结构,并以C++语言实现相关的算法。书中主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈、队列、递归、二叉树、图、排序和散列。书中还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配等主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。一起来看看 《C++数据结构与算法》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具