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();//死亡的线程不能再次被启动
    
        }
    }
    
  • 相关阅读:
    Java中常见时间类的使用
    springboot2.0介绍1
    Element-ui-Basic
    Java开发中的23中设计模式详解(一)工厂方法模式和抽象工厂模式
    CSS3 变形、过渡、动画、关联属性浅析
    Webpack 入门教程
    ES6对象简洁语法
    如何下载ts文件
    PPT转PDF
    python实践
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13311268.html
Copyright © 2011-2022 走看看