多线程的状态有哪些?

Java的线程在运行中会进行状态的切换,

Thread类中有个线程状态枚举,设置线程的状态有以下几种:

public enum State {//线程状态
    NEW,           //新建,new Thread后 start前的状态
    RUNNABLE,      //就绪态,java中的就绪态同时包括运行态,start() 后的状态
    BLOCKED,       //阻塞态,多个线程获取锁时,发现锁已经被其他线程获取,则自己进入阻塞态,其他线程释放锁后从阻塞态解除去竞争锁
    WAITING,       //等待状态,当调用Object.wait、Thread.join、LockSupport.park进入等待状态,进入等待状态的线程不能自己退出,只能由其他线程唤醒 
    TIMED_WAITING, //超时等待,调用sleep、wait(long)、join(long)、LockSupport.parkNanos、LockSupport.parkUntil时进入超时等待,时间到自动解除等待 
    TERMINATED;    //终止 
}

 

posted @ 2020-10-10 10:56  originyuan  阅读(236)  评论(0编辑  收藏  举报