浅谈线程的几种可用状态

 更新时间:2017年09月01日 09:19:29   投稿:jingxian  
下面小编就为大家带来一篇浅谈线程的几种可用状态。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1. 新建( new ):新创建了一个线程对象。
2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。
3. 运行( running ):可运行状态( runnable )的线程获得了 cpu 时间片( timeslice ) ,执行程序代码。
4. 阻塞( block ):阻塞状态是指线程因为某种原因放弃了 cpu 使用权,也即让出了 cpu timeslice ,暂时停止运行。直到线程进入可运行( runnable )状态,才有 机会再次获得 cpu timeslice 转到运行( running )状态。阻塞的情况分三种:
(一). 等待阻塞:运行( running )的线程执行 o . wait ()方法, JVM 会把该线程放 入等待队列( waitting queue )中。
(二). 同步阻塞:运行( running )的线程在获取对象的同步锁时,若该同步锁 被别的线程占用,则 JVM 会把该线程放入锁池( lock pool )中。
(三). 其他阻塞:运行( running )的线程执行 Thread . sleep ( long ms )或 t . join ()方法,或者发出了 I / O 请求时, JVM 会把该线程置为阻塞状态。            当 sleep ()状态超时、 join ()等待线程终止或者超时、或者 I / O 处理完毕时,线程重新转入可运行( runnable )状态。
5. 死亡( dead ):线程 run ()、 main () 方法执行结束,或者因异常退出了 run ()方法,则该线程结束生命周期。死亡的线程不可再次复生。

以上这篇浅谈线程的几种可用状态就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot整合Swagger2的完整过程记录

    SpringBoot整合Swagger2的完整过程记录

    Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架,这篇文章主要给大家介绍了关于SpringBoot整合Swagger2的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Java servlet、filter、listener、interceptor之间的区别和联系

    Java servlet、filter、listener、interceptor之间的区别和联系

    这篇文章主要介绍了Java servlet、filter、listener、interceptor之间的区别和联系的相关资料,需要的朋友可以参考下
    2016-11-11
  • java实现时间控制的几种方案

    java实现时间控制的几种方案

    这篇文章主要介绍了java实现时间控制的几种方案,本文从多个方面给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Spring Boot之AOP配自定义注解的最佳实践过程

    Spring Boot之AOP配自定义注解的最佳实践过程

    这篇文章主要给大家介绍了关于Spring Boot之AOP配自定义注解的最佳实践过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Java泛型类型擦除

    Java泛型类型擦除

    这篇文章主要为大家详细介绍了Java泛型类型擦除,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Windows 下安装配置 Eclipse详细教程

    Windows 下安装配置 Eclipse详细教程

    Eclipse是一款非常优秀的开源IDE,非常适合Java开发,由于支持插件技术,受到了越来越多的开发者的欢迎。配合众多令人眼花缭乱的插件,完全可以满足从企业级Java应用到手机终端Java游戏的开发。本文将带您手把手步入Eclipse的广阔天地
    2016-09-09
  • 详解SpringBoot集成消息队列的案例应用

    详解SpringBoot集成消息队列的案例应用

    Message Queue又名消息队列,是一种异步通讯的中间件。可以理解为邮局,发送者将消息投递到邮局,然后邮局帮我们发送给具体的接收者,具体发送过程和时间与我们无关。 消息队列是分布式系统中重要的组件,消息队列主要解决了应用耦合、异步处理、流量削锋等问题
    2022-04-04
  • SpringBoot整合BootStrap实战

    SpringBoot整合BootStrap实战

    这篇文章主要介绍了SpringBoot整合BootStrap实战,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java异常处理与throws关键字用法分析

    Java异常处理与throws关键字用法分析

    这篇文章主要介绍了Java异常处理与throws关键字用法,结合实例形式分析了java常见的异常、错误处理及throws关键字相关使用技巧、注意事项,需要的朋友可以参考下
    2019-01-01
  • Docker容器中的SSH免密登录详解

    Docker容器中的SSH免密登录详解

    这篇文章主要介绍了Docker容器中的SSH免密登录详解,在日常的开发和测试环境中经常需要创建和管理Docker容器,有时,出于调试或管理的目的,可能需要SSH到容器内部,本文将介绍如何创建一个Docker容器,它在启动时自动运行SSH服务,并支持免密登录,需要的朋友可以参考下
    2023-08-08

最新评论