Java多线程与并发学习之(三):线程的各种状态

本文详细探讨了Java中线程的6种状态,包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,并通过实例解释了状态间的转换,帮助理解线程在并发执行时的行为。
摘要由CSDN通过智能技术生成

  Java中线程的状态转换问题,自己一直没有完全缕清晰,了解个大概,细节上却又模棱两可,究其原因,还是没有仔细的去细致了解相关知识点,今天就花时间整理一下这部分的相关内容。


  关于java中线程状态问题,网络上各种答案都有,比如单就“线程状态”有哪几种这个问题,就可以找到好多种,有3种的、4种的、5种的、6种的和7种的,线程状态间的转换关系图,更是百花齐放,如果你不是很清晰,绝对会迷失在这些状态的迷宫中。

  3种的(就绪、阻塞和运行):


  4种的(运行、就绪、挂起和结束):


  5种的(新建、可运行、运行、阻塞和死亡):



  还有6种的(初始、运行就绪、运行、阻塞、等待、等待队列及终止【为什么图上7种,后续有解释】):


  7种的(初始、可运行、运行、阻塞、锁池、等待池及终止):


  还有:

 


  如果你跟我一样,一直对线程状态问题有疑惑,我相信你会有一种越看越蒙的感觉。我仔细想了下造成这种局面的原因,网络上很多博文上的解释,都是按照理解的思路去进行讲解的,但java中对线程状态的理解和真实之间有一些差异,理解java中的线程状态时粒度会更细,真实情况下java对线程进行封装时,进行了部分的简化,这两部分之间的信息差异,导致出现了各种不同理解的状态图。不能说哪一种是错的或者不完善的,只是理解的角度以及粒度不同而已。


  Java中的线程状态到底有几种呢?6种,J

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值