线程状态观测
[编程语言教程]

线程状态观测

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

  • NEW

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

  • RUNNABLE

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

  • BLOCKED

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

  • WAITING

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

  • TIMED_WAITING

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

  • TERMINATED

    已退出的线程处于此状态。

package MultiProcess;

//观察测试线程的状态
public class ThreadState {
    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);

        //观察启动后
        thread.start();
        state = thread.getState();
        System.out.println(state);

        while(state != Thread.State.TERMINATED){
            Thread.sleep(100);
            state = thread.getState(); //更新线程状态
            System.out.println(state);
        }
    }
}

结果
NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
...
TIMED_WAITING
TIMED_WAITING
******
TERMINATED

线程状态观测

原文地址:https://www.cnblogs.com/happysml/p/13833164.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 线程状态观测