【java学习—十五】线程的生命周期(4)

文章目录

  • 线程的生命周期
    • 1. 相关概念


线程的生命周期

1. 相关概念

线程的生命周期:线程从生到死的整个经历。

JDK 中用 Thread.State 枚举表示了线程的几种状态

要想实现多线程,必须在主线程中创建新的线程对象。

Java 语言使用 Thread 类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态
    新建: 当一个 Thread 类或其子类的对象被声明并创建时,新生的线程对象处于新建状态;
    就绪:处于新建状态的线程被 start() 后,将进入线程队列等待 CPU 时间片,此时它已具备了运行的条件;
    运行:当就绪的线程被调度并获得处理器资源时 , 便进入运行状态, run() 方法定义了线程的操作和功能;
    阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让出 CPU 并临时中止自己的执行,进入阻塞状态;(类似堵车,run方法的代码暂停执行、卡主run方法)
    死亡:线程完成了它的全部工作或线程被提前强制性地中止。
         (1)自然死亡:程序执行完毕或者程序发生了异常到程序结束;
         (2)强制死亡:执行.stop()方法、断电、杀掉进程。

线程的生命周期,可用如下流程图进行表示:

在这里插入图片描述

阻塞的几种方法:

阻塞解除阻塞
sleep()sleep()时间到
等待同步锁获取同步锁
wait()/join()notify()/notifyAll()
suspend()resume()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152991.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UnitTest + Selenium 完成在线加法器自动化测试

1. 任务概述 利用 UnitTest 与 Selenium 编写自动化用例,测试在线加法器中的整数单次加法功能【如123 】 人工操作流程(测试 12 是否等于 3): 打开在线加法器点击按钮1,再点击按钮,再点击按钮2&#xff0c…

adb手机调试常用命令

查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery 查看分辨率 adb shell wm size 查看屏幕密度 adb shell wm density 查看显示屏参数 adb shell dumpsys window displays 查看android_id adb shell settings get secure android…

安科瑞为数据中心绿色高质量发展贡献力量

安科瑞 崔丽洁  0前言 目前,数字经济的迅猛发展激发了数据中心的算力需求,数据中心规模与功耗密度不断提高,能耗问题日益突出。短期内,数据中心的能耗、碳排放量仍会呈现上升趋势。面对国家“双碳”压力,我国数据中心…

Active Directory 域服务基础知识

Active Directory 域服务(AD DS)是 Microsoft 提供的传统本地域服务,它是 Active Directory(AD)中的核心组件和服务器角色,Active Directory(AD)是 Windows 操作系统环境中的专用专有…

vue2项目修改编译巨慢

前言:我们的一个vue项目在给新同事后他说编译贼慢,一个小修改项5分钟才能自动编译成功,我把项目放到新电脑上也巨慢,升级了nodejs好使了一些,但还是慢,最后引入webpack后巨快, 在项目的package…

初识Java 18-1 泛型

目录 简单泛型 元组库 通过泛型实现栈类 泛型接口 泛型方法 可变参数和泛型方法 通用Supplier 简化元组的使用 使用Set创建实用工具 本笔记参考自: 《On Java 中文版》 继承的层次结构有时会带来过多的限制,例如:编写的方法或类往往…

前端学习笔记--React

1. 什么是React? React 是一个用于构建用户界面的JavaScript库核心专注于视图,目的实现组件化开发我们可以很直观的将一个复杂的页面分割成若干个独立组件,每个组件包含自己的逻辑和样式 再将这些独立组件组合完成一个复杂的页面。 这样既减少了逻辑复杂度,又实现…

12-1- GAN -简单网络-线性网络

功能 随机噪声→生成器→MINIST图像。 训练方法 1 判别器的训练,首先固定生成器参数不变,其次判别器应当将真实图像判别为1,生成图像判别为0 loss=loss(real_out, 1)+loss(fake_out, 0) 2 生成器的训练,首先固定判别器参数不变,其次判别器应当将生成图像判别为1 loss…

你应该知道关于Python的这几个技巧!

随着大数据时代的到来,我们每天都在接触爬虫相关的事情,这其中就不得不提及Python这门编程语言。我已经使用Python编程有多年了,即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年来的经历让我学到了很多的小…

MySQL覆盖索引的含义

覆盖索引:SQL只需要通过索引就可以返回查询所需要的数据,而不必通过二级索引查到主键之后再去查询数据,因为查询主键索引的 B 树的成本会比查询二级索引的 B 的成本大。 也就是说我select的列就是我的索引列(或者主键,…

XD6500S— LoRa SIP模块

XD6500S是一系列LoRa SIP模块,集成了射频前端和LoRa射频收发器SX1262系列,支持LoRa和FSK调制。收发器SX1262系列,支持LoRa和FSK调制。LoRa技术是一种扩频协议,针对LPWAN 应用的低数据速率、超远距离和超低功耗通信进行了优化。通信…

KMP算法详讲(问题导向,通俗易懂)

KMP算法是一种高效的字符串匹配算法,相比于BF算法的时间复杂度为O(n*m),它的时间复杂度降低到了O(nm)。这种算法的高效性在于它利用了主串的指针不回溯,而只移动模式串的指针位置。然而,对于初学者来说,KMP算法并不容易…

全面掌握:性能测试计划的制胜法宝

一.简介 简介部分就不用过多描述了,无非项目的背景,进行此次性能测试的原因,以及性能测试覆盖的范围等等,几乎所有项目文档都在开端对项目进行简单的阐述。 二.性能测试需求 寻找的被测试对象和压力点 …

windows 部署 weblogic 12.1.3

1、安装 1)下载 地址:WebLogic Server 12c (12.2.1), WebLogic Server 11g (10.3.6) and Previous Releases 2)安装 weblogic server java -Xmx1024m -jar fmw_12.1.3.0.0_wls.jar 出现图形界面按需配置,注意配置的安装路径不能…

11月编程榜最新出炉,第一名很离谱

这段时间,随着人工智能的崛起,Python的地位水涨船高。有不少朋友感觉到危机重重。 其中,最明显的,是市场环境的变化: 外部招聘:Python岗位日均需求量高达15000!不仅是程序员,内容编…

【分享课】11月16日晚19:30PostgreSQL分享课:PG缓存管理器主题

PostsreSQL分享课分享主题: PG缓存管理器主题 直播分享平台:云贝教育视频号 时间:11月16日 周四晚 19: 30 分享内容: 缓冲区管理器结构 缓冲区管理器的工作原理 环形缓冲区 脏页的刷新

uniapp使用Canvas实现电子签名

来源: 公司的一个需求,需要给新注册的会员和客商需要增加签署协议功能; 之前的思路: 1、使用vue-signature-pad来实现电子签名,但是安卓手机不兼容; 2、uniapp插件市场来实现,但是对HBuilderX…

为什么小型企业应该拥抱数字化转型?

在当今飞速发展的商业环境中,数字化转型已经成为各种规模组织的必然选择。特别是小型企业,通过数字化转型,可以在保持竞争力、提高运营效率并开启新的增长机会方面获益匪浅。本文探讨了数字化转型的概念,强调了它对小型企业的重要…

测试小白必看:自动化测试入门基础知识

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

小型企业网络搭建方案

在这个日益数字化和连接的世界里,一个稳固的小型企业网络是实现高效运作的关键支柱。不论您是在经营一家初创公司还是小型企业,一个可靠的企业网络都是保证顺畅沟通、数据分享以及访问在线资源的重要因素。本篇文章将会引导您完成构建一个小型企业网络的…