×
Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本数据类型Java 变量类型Java 修饰符Java 运算符Java 循环结构Java 分支结构Java Number类Java Character类Java String类Java StringBufferJava 数组Java 日期时间Java 正则表达式Java 方法Java Stream File IOJava 异常处理

Java 面向对象

Java 继承Java Override/OverloadJava 多态Java 抽象类Java 封装Java 接口Java 包(package)

Java 高级教程

Java 数据结构Java 集合框架Java 泛型Java 序列化Java 网络编程Java 发送邮件Java 多线程编程Java Applet基础Java 文档注释Java 实例Java 8 新特性Java MySQL 连接Java 9 新特性

Java 实例 - 状态监测


Java 实例Java 实例


以下实例演示了如何通过继承 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 实例Java 实例


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)