zoukankan      html  css  js  c++  java
  • 观测线程状态

    观测线程状态

    • Thread.State

      • 线程状态。线程可以处于以下状态之一:

        • new

          尚未启动的线程处于此状态。

        • RUNNABLE

          在JAVA虚拟机中执行的线程处于此状态

        • BLOCKED

          被阻塞等待监视器锁定的线程处于此状态

        • WAITING

          正在等待另一个线程执行特定动作的线程处于此状态

        • TIMED_WAITING

          正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。

        • TERMINATED

          已退出的线程处于此状态

      • 一个线程可以在给定时间点处于一个状态。这些状态是不反映任何操作系统线程状态的虚拟机状态。

    //观察测试线程的状态
    public class TestState {
    
        public static void main(String[] args) throws InterruptedException {
            Thread thread = new Thread(()->{
                for (int i = 0; i < 5; i++) {
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("//////");
            });
    
            //观察状态
            Thread.State state = thread.getState();
            System.out.println(state); //NEW
    
            //观察启动后
            thread.start();//启动线程
            state = thread.getState();
            System.out.println(state); //Run
    
            while (state != Thread.State.TERMINATED){//只要线程不终止,就一直输出状态
                Thread.sleep(100);
                state = thread.getState();//更新线程状态
                System.out.println(state);//输出状态
    
            }
            thread.start();//死亡的线程不能再次被启动
    
        }
    }
    
  • 相关阅读:
    (二)全局属性
    (十二)this关键字
    (十一)构造方法的重载和成员方法的重载
    (十)foreac遍历、break和countinue以及标签和switch循环
    java集合
    关于java赋值操作的原子性问题
    spring list map set
    apache benchmark
    为什么java web项目中要使用spring
    spring IOC
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13311268.html
Copyright © 2011-2022 走看看