sleep下的线程处于什么状态

文章目录

  • 前言
  • sleep下的线程有什么特点?
      • sleep线程属于的状态
        • 代码


前言

我们知道线程有六种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED,那么sleep状态下的线程是属于这六种状态的哪种呢?


sleep下的线程有什么特点?

一个线程sleep时它是没有cpu资源使用权的,如果有锁的话线程sleep后并不会释放锁

sleep线程属于的状态

sleep的线程是处于TIMED_WAITING状态,等睡眠时间过了之后进入RUNNABLE状态

代码


/*
@author   Nian
@Date     2022/8/15 10:08
@purpose  
          
@Note     If a thread is sleep,it's state is TIMED_WAITING
*/
public class SleepState {
    public static void main(String[] args) {
        Thread thread = new Thread(()->{
            try {
                for (int i = 0; i < 5; i++) {
                    Thread.sleep(3000);
                    System.out.println(i);
                }

            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        thread.start();
        while (true){
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(thread.getState());
        }
    }
}

代码执行结果如下:
sleep下的线程处于什么状态_第1张图片

你可能感兴趣的:(JavaSE,#,多线程,java,开发语言)