【操作系统】线程的状态

目录

1.前言

2.状态列表

3.代码演示


1.前言

在线程中,有很多的状态。这些状态代表了线程目前所处的位置和情况,我们也可以通过这些状态,在以后的工作中,精准的定位到程序出现的问题。

2.状态列表

在Thread类所创建的对象中,有以下几种状态。我们先通过一张图来大致的看一下。然后逐个介绍这些状态:

【操作系统】线程的状态_第1张图片

1.NEW:Thread对象创建完毕,但是还没调用start方法,所以在系统中,这时候还没创建线程。

2.TERMINATED:(终止) 和第一种相反,Thread对象创建完毕,但是start调用完成,线程已经执行完毕了。

3.RUNABLE.就绪状态,线程正在执行,或者在待命中,随时准备执行。

4.TIMED_WAITING 指定时间的阻塞,如sleep方法

5.WATING 阻塞(死锁)要满足一定条件后才能执行

6.BLOCKED 由于锁竞争引起的

3.代码演示

1.NEW 和 TERMINATED

public class demo6 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(()->{
            for (int i = 0; i < 5; i++) {
                System.out.println("线程执行中");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        });
        System.out.println(t.getState());
        t.start();
        t.join();
        System.out.println(t.getState());
    }
}

【操作系统】线程的状态_第2张图片

2.RUNNABLE 和TIMED_WAITING

【操作系统】线程的状态_第3张图片

【操作系统】线程的状态_第4张图片

你可能感兴趣的:(jvm)