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 ()方法,则该线程结束生命周期。死亡的线程不可再次复生。

最新文章

  1. supervisor 安装、配置、常用命令
  2. thinkphp标签
  3. mysql导入导出数据库命令
  4. bzoj1487
  5. telnet查看memcached运行参数说明
  6. 快速构建Windows 8风格应用17-布局控件
  7. HDU 1883 Phone Cell(计算几何)
  8. android usb挂载分析
  9. 初学python之,IDLE安装
  10. sqlserver2008 触发器备份 20170811
  11. python2.7安装django1.8后提示django-admin.py命令不存在
  12. 深入学习Redis:Redis内存模型
  13. 2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目
  14. (转)cenntos 安装mongodb
  15. 在Eclipse中运行Web项目Jsp网页时提示端口被占用的解决办法:Several ports (8005, 8888, 8009) required by Tomcat v9.0 Server at localhost are already in use.
  16. vue -resource 文件提交提示process,或者拦截处理
  17. Matlab绘制三维曲面(以二维高斯函数为例)
  18. 用jquery实现复选框全选全不选问题(完整版),在网络上怎么也找不到完整的解决方案,重要搞全了
  19. artDialog学习之旅(一)
  20. winphone开发环境配置

热门文章

  1. WFS: postgresql(postgis)和shp文件查询效率对比
  2. tp5.1 模型 where多条件查询 like 查询
  3. 微信小程序弹出层动画特效
  4. java中ThreadLocalRandom的使用
  5. vue2.x学习笔记(二十九)
  6. 解决从dockerhub上下载debian:jessie失败
  7. 二、Vue基础语法
  8. 14.在Python中lambda函数是什么
  9. 最简单,最明了,看了就会的VScode和C++的配置!(Visual Studio Code)
  10. 1秒内通关扫雷?他创造属于自己的世界记录!Python实现自动扫雷