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();//死亡的线程不能再次被启动
    
        }
    }
    
  • 相关阅读:
    bzoj 4548 小奇的糖果
    CF1151F Sonya and Informatics
    loj 2392「JOISC 2017 Day 1」烟花棒
    loj 2336「JOI 2017 Final」绳
    luogu P3620 [APIO/CTSC 2007]数据备份
    bzoj 4771 七彩树
    CF765F Souvenirs
    bzoj 3145 [Feyat cup 1.5]Str
    luogu P4482 [BJWC2018]Border 的四种求法
    第五章例题
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13311268.html
Copyright © 2011-2022 走看看