线程的生命周期,线程有几种状态

线程的生命周期:创建-->就绪-->运行-->阻塞-->死亡
线程的状态:

  1. 新建状态(New):新创建了一个线程对象
  2. 就绪状态(Runable):其它线程调用了该线程的start方法。该状态的线程都在可运行线程池中,等待获取CPU使用权
  3. 运行状态(Running):就绪状态的线程获取到了CPU使用权,开始执行程序代码
  4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进行就绪状态,才有机会转到运行状态继续运行
    阻塞的情况又分为三种:
    * 等待阻塞:运行的线程调用object类的wait方法,该线程会释放占用的所有资源,JVM会把该线程放到“等待池”中。进入这个状态后,是不能自动唤醒的,必须依靠其它线程调用notify或notifyAll方法才能被唤醒。
    * 同步阻塞:运行的线程在获取对象的同步锁时,若该锁正在被其它线程占用,则JVM会将该线程放入“锁池”中。
    * 其它阻塞:运行的线程调用Thread类的sleep方法或发出I/O请求时,JVM会把该线程置为阻塞状态。当sleep状态超时或I/O处理完毕时,线程重新转入就绪状态。
  5. 死亡状态(Dead):线程执行完毕或因异常退出了run方法,该线程结束生命周期。
posted @   程长新  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示