-
状态名称 说明 new 初始状态,线程被构建,但是还没有调用start()方法 runnable 运行状态,Java将 就绪态ready和运行态sunning 笼统的叫做运行中(被JVM隐藏了) blocked 阻塞状态,表示线程阻塞于锁 waiting 等待状态,线程进入等待状态后需要等待其他线程做出一些特定动作(通知或中断) time_waiting 等待超时状态,该状态不同于waiting,可以在指定的时间自行返回 terminated 终止状态,表示当前线程已经执行完毕 -
线程创建之后它将处于 NEW(新建) 状态,调⽤ start() ⽅法后开始运⾏,线程这时候处于 READY(可运⾏) 状态。可运⾏状态的线程获得了 cpu 时间⽚(timeslice)后就处于 RUNNING(运 ⾏) 状态。
-
当线程执⾏ wait() ⽅法之后,线程进⼊ WAITING(等待)状态。进⼊等待状态的线程需要依靠其他线 程的通知才能够返回到运⾏状态,⽽
-
TIME_WAITING(超时等待) 状态相当于在等待状态的基础上增加了 超时限制,⽐如通过 sleep(long millis) ⽅法或 wait(long millis) ⽅法可以将 Java 线程置于 TIMED WAITING 状态。当超时时间到达后 Java 线程将会返回到 RUNNABLE 状态。
-
当线程调⽤同步⽅法 时,在没有获取到锁的情况下,线程将会进⼊到 BLOCKED(阻塞) 状态。线程在执⾏ Runnable 的 run() ⽅法之后将会进⼊到 TERMINATED(终⽌) 状态。