观察线程状态
发布日期:2021-05-08 02:59:31 浏览次数:20 分类:精选文章

本文共 1146 字,大约阅读时间需要 3 分钟。

线程状态:Thread.State

new: new Thread() 后处于新生状态,尚未启动

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

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

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

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

Terminated: 退出的线程处于此状态.

//观察线程状态public class TextState {       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();//报错,线程结束后不能再启动    }}
上一篇:多线程优先级
下一篇:初学线程强制执行

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月05日 14时44分29秒