我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java进阶知识——线程的六种状态

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java进阶知识——线程的六种状态

线程的状态

线程有如下6种状态:

New(新创建 )

Runnable(可运行)

Blocked(被阻塞)

Waiting(等待)

Timed waiting(计时等待)

Terminated(被终止)

其中,要获取一个线程当前的状态,可以调用getState 方法。

java相关视频推荐:java视频

下面,对每种状态进行解释

1.新创建线程(New)

当我们使用new操作符来创建了一个线程时,如使用new Thread(r)时,线程还未开始运行,线程中的代码也没有开始执行,此时就成为New状态。

2.可运行线程(Runnable)

当我们对一个线程执行start()方法后,就会启动该线程。但是注意,一个处于可运行状态的线程可能正在运行也可能没有运行,这时取决于操作系统的时间片调度。抢占式调度系统会给每一个线程分配一个时间片来运行,在时间片使用完后,操作系统就会剥夺它运行的权力,并更根据优先级选择下一个要运行的线程。

3.被阻塞、等待状态(Blocked、waiting、Timed waiting)

当一个线程处于阻塞和等待状态时,它不做任何工作,也不执行任何代码。直到操作系统重新激活它。

当一个线程试图获取一个内部对象锁,而这个锁又被其它线程持有时,该线程就进入阻塞状态,当其它线程释放这个锁后,并且线程调度器允许该线程持有它时,该线程将会变成非阻塞状态。

当线程等待另一个线程通知调度器一个条件时,它自己就进入等待状态,再调用Object.wait方法或者Thread.join方法时,就会出现这种情况。被阻塞状态和等待状态时大有不同的。

有几个方法有一个超时参数。调用它们导致线程进入计时等待状态这一状态将一直保存到超时期满或者接收到适当的通知。带有超时参数的方法有:Thread.sleepObject.waitThread.joinLock,tryLock 以及 Condition.await 的计时版。

4.被终止的线程

线程终止有两种原因:

因为run()方法执行完毕正常退出

因为一个没有捕获的异常而终止了run方法导致意外死亡

5.总结

879d72b2f681d4d11c828cb900cd486.png

相关文章教程推荐:java编程入门

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java进阶知识——线程的六种状态

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java进阶知识——线程的六种状态

线程的状态线程有如下6种状态:New(新创建 )Runnable(可运行)Blocked(被阻塞)Waiting(等待)Timed waiting(计时等待)Terminated(被终止)其中,要获取一个线程当前的状态,可以调用getState 方法。java
java进阶知识——线程的六种状态
2015-07-31

java线程的几种状态是什么

Java线程既可以创建,也可以销毁,所以线程是有生命周期的,而线程的生命周期就可以用线程的六种状态来描述。从Thread类的源码中可以看出线程一共有6种状态:这六种状态分别是:1. New:初始状态,线程被创建,没有调用start()。2. Runnable:
java线程的几种状态是什么
2019-04-18

java中线程的状态有哪几种

在Java中,线程有以下几种状态:1. 新建(New):线程对象被创建,但还没有调用start()方法启动线程。2. 运行(Runnable):线程被调度并执行。3. 阻塞(Blocked):线程被阻塞,等待某个条件的满足,例如等待输入/输
2023-08-15

java线程生命周期的状态有哪几种

Java线程的生命周期有以下几种状态:1. 新建(New):当线程对象被创建时,该线程处于新建状态。2. 就绪(Runnable):当线程对象调用 `start()` 方法后,该线程处于就绪状态,等待获取CPU时间片执行。3. 运行(Run
2023-09-11

Java线程的6种状态与生命周期是什么

本文小编为大家详细介绍“Java线程的6种状态与生命周期是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java线程的6种状态与生命周期是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.线程状态(生命
2023-06-30

怎么对Java 线程池的运行状态进行监控

怎么对Java 线程池的运行状态进行监控?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。总线程数 = 排队线程数 + 活动线程数 + 执行完成的线程数下面给出一个线程池使用示
2023-06-06

java中线程的完整生命周期有哪几种状态

Thread.State类Thread.State类定义了线程的几种状态,在一个完整的生命周期中通常要经历五种状态:新建: 当一个Thread类或其子类的对象被声明并创建时;就绪: start()方法后,将进入线程队列等待CPU时间片;运行: 当就绪的线程被调
java中线程的完整生命周期有哪几种状态
2016-02-24

2022年软件设计师考试知识点(十四):进程的状态

  为帮助考生备考2022年软考软件设计师考试,编程学习网小编为大家整理了2022年软件设计师考试知识点(十四):进程的状态。  很多考生在备考2022年软件设计师考试,编程学习网小编为大家整理了2022年软件设计师考试知识点(十四):进程的状态,供考生备考复习。  进程的状态(★★)  【考法分析】  本考点主要考查形式主要
2022年软件设计师考试知识点(十四):进程的状态
2024-04-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录