Java线程状态

在Java中线程的有以下5种状态,如下所示:

线程状态含义
NEW新建状态,线程已经创建,但是没有执行start()方法
RUNNABLE可运行状态,线程可以在JVM中运行,但是还需要等待CPU分配资源
BLOCKED阻塞状态,当遇到synchronized且没有取得相应的锁,就会进入这个状态
WAITING等待状态,当线程中wait()/join/Locksupport.park方法时,就会进入这个状态
TIMED_WAITING计时等待状态,当调用Thread.sleep()或者Object.wait(xx)或者Thread.join(xx)或者LockSupport.parkNanos或者LockSupport.partUntil时,进入该状态
TERMINATED线程中断状态,线程被中断或者运行结束,就会进入这个状态

在上述表格中,线程的5种状态对应着Java的不同方法,具体如下图所示:

需要注意的是,在上图中标红的两个状态,是操作系统中线程对应的状态,Java将这两种状态合并为可运行状态(RUNNABLE)。在操作系统中 就绪状态(READY) 表示线程已经准备完毕,等待CPU分配时间片。运行中状态(RUNNING) 表示当线程分到时间片,线程开始正式执行。

# java 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×