首页 > 编程知识 正文

线程的基本状态转换图,进程的基本状态转换图

时间:2023-05-03 17:24:11 阅读:160583 作者:1577

线程状态转移图

线程的某些状态新建状态(New):

使用new语句创建的线程与其他Java对象一样,只是为堆空间分配了内存。就绪状态(Runnable):

当创建一个线程对象时,如果其他线程调用其start ()方法,该线程将处于就绪状态,Java虚拟机将创建方法调用堆栈和程序计数器。 处于此状态的线程位于可执行池中,等待获得CPU使用权。运行状态(Running):

处于这种状态的线程占用CPU并执行程序代码。 只有处于就绪状态的线程才有机会转换到运行状态。阻塞状态(Blocked):

阻塞状态是指线程由于某种原因放弃CPU并暂时停止。 线程被阻止时,Java虚拟机不会为线程分配CPU。 在线程再次进入就绪状态之前,没有机会进入运行状态。 阻塞状态可以分为三种类型:等待对象池中的阻塞状态(blockedinobject’swaitpool )。

如果在线程正在运行时执行了对象的wait ()方法,Java虚拟机会将线程放在该对象的等待池中。 这包括“线程通信”的内容。 对象锁定池中的阻塞状态(blockedinobject’slock pool ) :

如果尝试获取线程正在运行的对象的同步锁,但该对象的同步锁已被其他线程占用,则Java虚拟机会将该线程放入对象的锁池中。 这包括“线程同步”的内容。 其他阻塞状态(Otherwise Blocked ) :

当当前线程执行sleep (方法,或调用另一个线程的join )方法,或发出I/O请求时,会出现这种情况。死亡状态(Dead):

线程为run ) )方法退出后,将进入死亡状态,该线程将退出其生命周期。 线程状态转移图也可以参照该博客的Java线程状态分析/线程状态转移图

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。