简述

以下类图展示了线程生命周期中不同的状态。我们可以创建一个线程并启动它,但是线程状态从Runnable、Running、Blocked等状态的变化取决于系统线程调度器,java本身并不能完全控制。

线程状态

New(新建状态)

当我们用new创建一个线程对象时,线程的状态是***新建状态***,这个状态并不代表线程已经执行了,只是Java编程中的一个内部状态

Runnable(就绪状态)

当我们调用线程实例对象的start()方法时,它的状态变成了*Runnable(就绪状态)*****,这是状态下线程调度器将会调动它

Running(运行状态)

当线程被线程调度器调度后,它的状态变成了Running(运行状态),CPU开始执行这个线程。一个线程的状态之所以可以变为Runnable, Dead 或 Blocked,取决于时间切片

Blocked/Waiting(阻塞/等待状态)

一个线程处于阻塞状态是因为等待其它线程执行完成或等待其它资源。一旦一个线程阻塞状态结束,它的状态将变成Runnable状态并且它将被转移到可执行线程池

Dead(死亡)

一旦线程执行完成,它的状态将被转换为Dead(死亡)

转载于:https://www.cnblogs.com/liukaifeng/p/10052664.html

Java线程之生命周期相关推荐

  1. java线程的生命周期及wait(),notify(),notifyAll()的详解分析

    1.java线程的生命周期     线程是一个动态执行的过程,它也有一个从产生到死亡的过程. (1)生命周期的五种状态 新建(new Thread)     当创建Thread类的一个实例(对象)时, ...

  2. 《Java 并发编程实战》—— Java线程的生命周期

    09 | Java线程的生命周期 通用的线程生命周期:初始状态.可运行状态.运行状态.休眠状态和终止状态. 初始状态,指的是线程已经被创建,但是还不允许分配 CPU 执行.这个状态属于编程语言特有的, ...

  3. java -- 线程的生命周期

    线程的生命周期 1.线程的生命周期线程是一个动态执行的过程,它也有一个从产生到死亡的过程. (1)生命周期的五种状态 新建(new Thread)当创建Thread类的一个实例(对象)时,此线程进入新 ...

  4. 图解 Java 线程的生命周期,看完再也不怕面试官问了

    文章首发自个人微信公众号: 小哈学Java www.exception.site/java-concur- 在 Java 初中级面试中,关于线程的生命周期可以说是常客了.本文就针对这个问题,通过图文并 ...

  5. java线程6种状态转换,Java线程的生命周期和各种状态转换详解

    在Java中,任何对象都有生命周期,线程也不例外,它也有自己的生命周期.当Thread对象创建完成时,线程的生命周期便开始了,当线程任务中代码正常执行完毕或者线程抛出一个未捕获的异常(Exceptio ...

  6. Java—线程的生命周期及线程控制方法详解

    关注微信公众号:CodingTechWork,一起学习进步. 线程生命周期5种状态 介绍   线程的生命周期经过新建(New).就绪(Runnable).运行(Running).阻塞(Bolocked ...

  7. Java线程的生命周期及线程的几种状态

    线程也具有生命周期,主要包括 7 种状态: 出生状态. 就绪状态. 运行状态. 等待状态. 休眠状态. 阻塞状态. 死亡状态, 下面对线程生命周期中的 7 种状态做说明. 出生状态:用户在创建线程时所 ...

  8. JAVA线程的生命周期以及5种状态转换

    一:线程的生命周期 新建状态(NEW):新创建一个线程对象. 就绪状态(RUNNABLE):线程对象创建后,调用该对象的start()方法.该状态的线程等待被线程调度选中,获取CPU的使用权. 运行状 ...

  9. Java 线程的生命周期

    当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死 ...

  10. 啃碎并发(二):Java线程的生命周期

    0 前言 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态.在线程的生命周期中,它要经过 新建(New).就绪(Runnable).运行(Running).阻塞(Bloc ...

最新文章

  1. 新网站如何推广 新建设的网站如何宣传
  2. 保护DNS对数字网络安全越来越重要
  3. Python+Django+Nginx+Uwsgi 详细部署过程(爬坑过程,可以了解各个软件的执行流程,看过)
  4. 快嘉开发框架1.0和示例介绍及使用说明
  5. 中学生计算机编程教学视频6,计算机科学速成课6:寄存器和内存【视频】
  6. 【kafka】kafka获取消费组异常 EOFException: null KeeperErrorCode
  7. amend用法 git 信息_Git 高级用法,你用过哪些了
  8. 2017/07/27 工作日志
  9. Linux下修改键盘映射
  10. 第一个暴力猴脚本- 抓取携程某个城市所有起飞、到达航班并保存
  11. lg相乘公式_lg的运算法则是什么
  12. Photoshop CS5软件安装教程
  13. ADXL345 三轴加速度角度传感器
  14. 新疆旅游8天要多少钱,新疆8天价格记录分享
  15. UEFI+GPT 双硬盘(固态+机械)装双系统(win10+ubuntu16.04)
  16. 2022年智能手机市场概括
  17. 一起自学SLAM算法:8.1 Gmapping算法
  18. 2015百度面试题--对10亿个32位整数去重和排序
  19. 微型计算机原理中jge,微机原理第三章课件.ppt
  20. matlab 图片最多显示几张_matlab在一个figure中显示多幅图像

热门文章

  1. [渝粤教育] 金陵科技学院 面向对象程序设计 参考 资料
  2. 【渝粤教育】国家开放大学2018年春季 0420-22T酒店管理概论 参考试题
  3. [渝粤教育] 中国地质大学 大学英语(3) 复习题
  4. 【sklearn第十七讲】特征选择
  5. 23种设计模式(十五)接口隔离之适配器
  6. 基于强化学习的倒立摆控制策略Matlab实现(附代码)
  7. 最新IOS审核被拒原因TOP10 | 附带解决方法
  8. [转]网上整理 Web JS 通用
  9. luogu P1080 国王游戏
  10. centos7 源码安装redis