基于java 线程的几种状态(详解)

发布时间 - 2026-01-11 03:11:05    点击率:

线程可以有六种状态:

  1.New(新创建)

  2.Runnable(可运行)(运行)

  3.Blocked(被阻塞)

  4.Waiting(等待)

  5.Timed waiting(计时等待)

  6.Terminated(被终止)

新创建线程:

  当用new操作符创建一个新线程时,如new Thread(r),该线程还没有开始运行,它的当前状态为new,在线程运行之前还有一些基础工作要做。

可运行线程:

  一旦线程调用start方法,线程处于runnable状态。在这个状态下的线程可能正在运行也可能没有运行(也就是说Java规范中正在运行的线程仍然处于可运行状态)。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。

被阻塞线程:

  这个状态下, 是在多个线程有同步操作的场景, 比如正在等待另一个线程的synchronized 块的执行释放, 或者可重入的 synchronized块里别人调用wait() 方法, 也就是线程在等待进入临界区。

等待线程:

  这个状态下是指线程拥有了某个锁之后, 调用了它的wait方法,或者线程调用了join方法 join了另外的线程, 等待被他join的线程执行结束的状态。这里要区分阻塞状态 和等待状态的区别, 一个是在临界点外面等待进入, 一个是在临界点里面wait。

计时等待线程:

  当线程调用带有超时参数的方法时会导致线程进入计时等待状态,带有超市参数的方法有Thread.sleep、Object.wait、Thread.join、Lock.tryLock以及Condition.await的计时版。

被终止的线程:

  1)线程因为run方法正常退出而自然死亡。

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

  线程状态之间的转换:

           

以上这篇基于java 线程的几种状态(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java线程几种状态  # RxJava的消息发送和线程切换实现原理  # Java 实现多线程切换等待唤醒交替打印奇偶数  # Java线程状态及切换、关闭线程的正确姿势分享  # Java实现多线程的上下文切换  # Java实现监控多个线程状态的简单实例  # 总结Java中线程的状态及多线程的实现方式  # Java线程池运行状态监控实现解析  # 学习Java多线程之线程定义、状态和属性  # Java线程的6种状态及切换教程  # 是在  # 给大家  # 状态下  # 正在运行  # 运行状态  # 还没有  # 在这个  # 多个  # 是指  # 希望能  # 要做  # 几种  # 这篇  # 还有一些  # 在等待  # 创建一个  # 小编  # 六种  # 大家多多  # 也就是说 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel Fortify是什么,和Jetstream有什么关系  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何在云服务器上快速搭建个人网站?  ,怎么在广州志愿者网站注册?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何快速搭建高效服务器建站系统?  如何在 React 中条件性地遍历数组并渲染元素  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  java ZXing生成二维码及条码实例分享  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  如何续费美橙建站之星域名及服务?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  百度浏览器如何管理插件 百度浏览器插件管理方法  Bootstrap整体框架之CSS12栅格系统  如何用PHP快速搭建CMS系统?  如何快速生成ASP一键建站模板并优化安全性?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  javascript中的try catch异常捕获机制用法分析  如何在万网自助建站平台快速创建网站?  清除minerd进程的简单方法  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  教你用AI将一段旋律扩展成一首完整的曲子  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  制作旅游网站html,怎样注册旅游网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何确认建站备案号应放置的具体位置?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何使用Livewire构建动态组件?(入门代码)  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  EditPlus中的正则表达式 实战(4)  昵图网官网入口 昵图网素材平台官方入口