一、线程状态

线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下:

1、新状态:线程对象已经创建,还没有在其上调用start()方法。

2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。

3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。

4、等待/阻塞/睡眠状态:这是线程有资格运行时它所处的状态。实际上这个三状态组合为一种,其共同点是:线程仍旧是活的,但是当前没有条件运行。换句话说,它是可运行的,但是如果某件事件出现,他可能返回到可运行状态。

5、死亡态:当线程的run()方法完成时就认为它死去。这个线程对象也许是活的,但是,它已经不是一个单独执行的线程。线程一旦死亡,就不能复生。如果在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常。

最新文章

  1. centos 解压jdk安装包方式安装jdk 出现 java/lang/NoClassDefFoundError: java/lang/Object 错误
  2. 如何移除wordpress Admin Bar 上的 WordPress Logo
  3. 储物柜soket通信协议和中间件实现技术细节
  4. 游标、动态sql、异常
  5. ORACLE错误一览表【转】
  6. LINUX查看硬件配置命令
  7. Jsp,Servlet初学总结
  8. Java 基础语法
  9. Windows下Mysql常用操作命令
  10. windows10下面部署nginx(解决文件名中文乱码问题)
  11. jQuery常用 遍历函数
  12. Python参数笔记
  13. 微软Azure AspNetCore微服务实战 第一期
  14. Confluence 6 配置边栏链接
  15. PHP系统编程--PHP进程信号处理(转)
  16. Mysql表类型(存储引擎)的比较
  17. IDA的头像
  18. js 代码几种方式
  19. 团体队列(UVa540)
  20. 《Java程序设计》第四章-认识对象

热门文章

  1. Mac 下反编译Android APK
  2. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
  3. centos6.6 ftp 配置 修改默认端口等
  4. android: Canvas的drawArc()方法的几个误区
  5. <JavaScript>尺寸类样式的获取
  6. GitHub上最著名的Android播放器开源项目大全
  7. ubuntu server 18.04 有线网卡默认关闭,需要手工配置才能使用的方法
  8. React之概述(待续)
  9. 遍历List集合删除元素的出现报错
  10. Qt编写自定义控件59-直方动态图