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) 表示当线程分到时间片,线程开始正式执行。

0 0 投票数
Article Rating
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x