2019独角兽企业重金招聘Python工程师标准>>>

thread的六种状态

http://blog.csdn.net/lifei128/article/details/20363257

线程共有6种状态;在某一时刻只能是这6种状态之一。这些状态由Thread.State这个枚举类型表示,并且可以通过getState()方法获得当前具体的状态类型。
  NEW

  至今尚未启动的线程的状态。

  当使用new一个新线程时,如new Thread(r),但还没有执行start(),线程还没有开始运行,这时线程的状态就是NEW。

  RUNNABLE

  可运行线程的线程状态。

  当start()方法被调用时,线程就进入RUNNABLE状态。此时的线程可能正在运行,也可能没有运行

  BLOCKED

  受阻塞并且正在等待监视器锁的某一线程的线程状态。

  下列情况会进入阻塞状态:

  1.等待某个操作的返回,例如IO操作,该操作返回之前,线程不会继续下面的代码。

  2.等待某个“锁”,在其他线程或程序释放这个“锁”之前,线程不会继续执行。

  3.等待一定的触发条件。

  4.线程执行了sleep方法。

  5.线程被suspend()方法挂起。

  一个被阻塞的线程在下列情况下会被重新激活:

  1.执行了sleep()方法,睡眠时间已到。

  2.等待的其他线程或程序持有的“锁”已被释放。

  3.正在等待触发条件的线程,条件得到满足。

  4.执行了suspend()方法,被调用了resume()方法。

  5.等待的操作返回的线程,操作正确返回。

  WAITING

  某一等待线程的线程状态。

  线程因为调用了Object.wait()或Thread.join()而未运行,就会进入WAITING状态。

  TIMED_WAITING

  具有指定等待时间的某一等待线程的线程状态。

  线程因为调用了Thread.sleep(),或者加上超时值来调用Object.wait()或Thread.join()而未运行,则会进入TIMED_WAITING状态。

  TERMINATED

  已终止线程的线程状态。

  线程已运行完毕。它的run()方法已正常结束或通过抛出异常而结束。

  线程的终止

  run()方法结束,线程就结束。

转载于:https://my.oschina.net/u/199776/blog/337534

转载:thread的六种状态相关推荐

  1. JAVA线程六种状态_Java:线程的六种状态及转化

    多线程概述及创建方式 Java:线程的六种状态及转化 关于线程的生命周期,网上书上说法不一,难以统一,本篇做一个总结: java.lang.Thread.State枚举类中定义了六种线程的状态,可以调 ...

  2. Java中多线程的六种状态详解

    在我们的Thread类中,我们可以看到多线程有六种状态. NEW:初始状态 RUNNABLE:运行状态 BLOCKED:阻塞状态 WAITING:等待状态 TIMED_WAITING:超时等待状态 T ...

  3. java thread 几个状态_Java-Thread 线程的几种状态

    Oracle JDK 定义中,线程一共有六种状态 NEW:未启动状态 Thread t= newThread() { @Overridepublic voidrun() { System.out.pr ...

  4. 【多线程】多线程的六种状态

    前言 java多线程包含六种状态,分别是NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED. public enum State {NEW,RU ...

  5. 多线程--线程的六种状态

    在多线程中,线程在不同的情况下会有不同的状态,了解线程的状态可以帮助我们更好的掌握多线程. 线程状态简介 在JDK8中,Thread一共有六种状态,它们被定义在一个枚举里,我们根据源码来大概看一下不同 ...

  6. 操作系统中进程的五种状态与JAVA中线程的六种状态

    操作系统中的五种状态 新建:创建新的进程 就绪:进程已经获得除CPU时间片以外的任何资源,一旦获得cpu时间片就能立马执行. 执行:处于就绪队列中的进程获得了时间片运行进程. 阻塞:进程时间片用完进入 ...

  7. 【java高性能编程基础】- java中线程的六种状态,线程状态变化的几种类型

    文章目录 从源码看Thread中定义的六种线程状态 线程状态的变化 1.线程正常运行结束的状态变化 2.线程执行过程中等待一段时间再继续执行结束的状态变化 3.线程执行过程中等待其他线程被阻塞,然后继 ...

  8. nmap把端口定义为六种状态的解读

    NMAP六种端口状态解读 Nmap是一种用来发现网络中主机和服务的安全扫描工具,从而能够产生一个网络"地图",为了完成这个功能,nmap会向每个目标主机发送特定的报文,从而从目标主 ...

  9. 打印Thread六种状态的例子

    个人备忘录,不是分享文章.. public class 线程状态演示 {public static void main(String[] args)throws Exception{showNew() ...

最新文章

  1. 调用android系统自带功能
  2. Spring定时任务的配置
  3. INotifyPropertyChanged 接口 CallerMemberName属性
  4. 10个数冒泡排序流程图_C语言 | 冒泡排序
  5. SSL与OpenSSL关系介绍
  6. zabbix 时间错误_一键部署Zabbix+Grafana+Icinga+SmokePing监控系统
  7. 作者:周一懋(1982-),男,江苏汇誉通数据科技有限公司大数据事业部总监、工程师...
  8. SpringClould之应用层鉴权Oauth2
  9. 笔试题: 数据库 已看1 一些关键的sql语句练习 和选择题 有用 sql语句练习 挺好...
  10. 8254跑马灯c语言程序,C语言笔记-基于C语言实现的流水跑马灯
  11. 阿里云宽带是怎么按流量进行计费的?
  12. add_months函数
  13. 【教你如何在Win7上安装lls】
  14. 编程语言Python为什么这么火?
  15. python基础 面向对象编程
  16. 判断字符串是否包含特殊符号
  17. windows启动管理器_如何在Windows 10中打开任务管理器,方法众多,值得收藏
  18. Normalization如何解决梯度消失
  19. Python实现自定义竖线的线型
  20. ERJ | 马来西亚三城室内环境微生物/代谢产物与初中生哮喘的关联

热门文章

  1. hdu5007 小水题
  2. hdu4287 水题
  3. 【数字信号处理】相关函数应用 ( 使用 matlab 计算相关函数 )
  4. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )
  5. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )
  6. 【错误记录】Windows 系统 bat 脚本报错 ( 使用 pause 拦截窗口自动关闭 | 方便查看错误 )
  7. 【SeeMusic】视频编辑 ( 顶部裁剪 | 底部裁剪 | 左侧裁剪 | 右侧裁剪 | 明亮度 | 对比度 | 色调 | 饱和度 )
  8. 【SeeMusic】创建 SeeMusic 工程并编辑相关内容 ( 创建工程 | 导入 MIDI 文件 | 导入音频 | 导入视频 )
  9. 【Android APT】注解处理器 ( 注解标注 与 初始化方法 )
  10. 【Flutter】Flutter 拍照示例 ( 拍照并获取照片源码示例 | image_picker 0.7.2+1 | Flutter 最新 SDK 安装 )