博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程的状态
阅读量:6896 次
发布时间:2019-06-27

本文共 481 字,大约阅读时间需要 1 分钟。

线程状态
线程状态转换

各种状态一目了然,值得一提的是"blocked"这个状态:
线程在Running的过程中可能会遇到阻塞(Blocked)情况

  1. 调用join()和sleep()方法,sleep()时间结束或被打断,join()中断,IO完成都会回到Runnable状态,等待JVM的调度。
  2. 调用wait(),使该线程处于等待池(wait blocked pool),直到notify()/notifyAll(),线程被唤醒被放到锁定池(lock blocked pool ),释放同步锁使线程回到可运行状态(Runnable)
  3. 对Running状态的线程加同步锁(Synchronized)使其进入(lock blocked pool ),同步锁被释放进入可运行状态(Runnable)。

此外,在runnable状态的线程是处于被调度的线程,此时的调度顺序是不一定的。Thread类中的yield方法可以让一个running状态的线程转入runnable。

转载于:https://www.cnblogs.com/kuoAT/p/8602945.html

你可能感兴趣的文章
PO-->OOP+AOP-->SOA软件开发思想演化
查看>>
oracle 对象管理 08_游标与记录
查看>>
PL/SQL developer配置
查看>>
高中的一套学习法则
查看>>
JavaScript中的setTimeout函数
查看>>
ln软链接出现Too many levels of symbolic links
查看>>
Java中排序相关
查看>>
关于Plan的计划
查看>>
提升tomcat服务器性能的七条经验
查看>>
Tomcat 生产服务器性能优化
查看>>
ubuntu下Odoo10开发环境配置
查看>>
Java ServletContext 详解
查看>>
html <area> 的用法,图片热点的使用
查看>>
CheckBox的CheckedChanged事件获取DataGrid选中行的值
查看>>
linux exec 文件重定向
查看>>
jquery mobile——必须引入的文件及头信息
查看>>
Redis安装部署
查看>>
redis-sentinel 做HA
查看>>
图为先C++笔试20131017
查看>>
模仿墨迹天气-demo
查看>>