Java刷题知识点之线程的几种可用状态(新建、可运行、运行、阻塞、死亡)

简介:
https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=13

 

 

 

 

 

 

 

1、 新建( new ):新创建了一个 线程对象
2、 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程) 调用了该对象 的  start  ()方法。该状态的线程位于可运行线程池中, 等待被线程调度选中,获 取 cpu 的使用权 。
3、 运行( running ):可运行状态( runnable )的线程 获得了  cpu  时间片( timeslice ) ,执行程序代码。
4、 阻塞( block ):阻塞状态是指线程因为某种原因 放弃了  cpu  使用权,也即让出了 cpu timeslice , 暂时停止运行。直到线程进入可运行( runnable )状态,才有 机会再次获得 cpu timeslice 转到运行( running )状态。
  阻塞的情况分三种:
    (一)、 等待阻塞:运行( running )的线程执行 o .  wait  ()方法, JVM 会把该线程 放 入等待队列( waitting queue )中。
    (二)、 同步阻塞:运行( running )的线程在获取对象的同步锁时,若该 同步锁 被别的线程占用,则 JVM 会把该线程放入锁池( lock pool )中。
    (三)、 其他阻塞: 运行( running )的线程 执行  Thread  .  sleep  (  long  ms  )或  t  .  join  ()方法,或者发出了 I / O 请求时, JVM 会把该线程置为阻塞
         状态。 当 sleep ()状态超时、 join ()等待线程终止或者超时、或者 I / O 处理完毕时,线程重新转入可运行( runnable )状态。
5、 死亡( dead ):线程 run ()、 main () 方法 执行结束,或者因 异常退出了  run  ()方法,则该线程结束生命周期。死亡的线程不可再次复生。

 

 
 
 
 
 
 
  简单帮助记忆
 
可以用早起坐地铁来比喻这个过程:
  还没起床:sleeping
  起床收拾好了,随时可以坐地铁出发:Runnable
  等地铁来:Waiting
  地铁来了,但要排队上地铁:I/O阻塞
  上了地铁,发现暂时没座位:synchronized阻塞
  地铁上找到座位:Running
  到达目的地:Dead


本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7417255.html,如需转载请自行联系原作者
相关文章
|
11月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
503 83
|
8月前
|
Java 测试技术 API
【JUC】(1)带你重新认识进程与线程!!让你深层次了解线程运行的睡眠与打断!!
JUC是什么?你可以说它就是研究Java方面的并发过程。本篇是JUC专栏的第一章!带你了解并行与并发、线程与程序、线程的启动与休眠、打断和等待!全是干货!快快快!
1140 2
|
11月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
472 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
11月前
|
存储 Java 程序员
Java 基础知识点全面梳理包含核心要点及难点解析 Java 基础知识点
本文档系统梳理了Java基础知识点,涵盖核心特性、语法基础、面向对象编程、数组字符串、集合框架、异常处理及应用实例,帮助初学者全面掌握Java入门知识,提升编程实践能力。附示例代码下载链接。
416 0
|
11月前
|
Java 编译器 数据安全/隐私保护
Java 大学期末考试真题与答案 含知识点总结 重难点归纳及题库汇总 Java 期末备考资料
本文汇总了Java大学期末考试相关资料,包含真题与答案、知识点总结、重难点归纳及题库,涵盖Java基础、面向对象编程、异常处理、IO流等内容,并提供完整代码示例与技术方案,助你高效复习备考。
1034 3
|
12月前
|
存储 安全 Java
2025 年最新 40 个 Java 基础核心知识点全面梳理一文掌握 Java 基础关键概念
本文系统梳理了Java编程的40个核心知识点,涵盖基础语法、面向对象、集合框架、异常处理、多线程、IO流、反射机制等关键领域。重点包括:JVM运行原理、基本数据类型、封装/继承/多态三大特性、集合类对比(ArrayList vs LinkedList、HashMap vs TreeMap)、异常分类及处理方式、线程创建与同步机制、IO流体系结构以及反射的应用场景。这些基础知识是Java开发的根基,掌握后能为后续框架学习和项目开发奠定坚实基础。文中还提供了代码资源获取方式,方便读者进一步实践学习。
2856 2
|
12月前
|
并行计算 Java API
Java 入门循环结构基础知识点详解
摘要:本文介绍了Java现代循环技术的进阶应用,包括Stream API、响应式编程和模式匹配,展示了如何用Stream API替代传统循环进行声明式集合处理(如过滤、映射和并行计算),以及响应式编程在异步非阻塞场景下的优势。文章还通过电商订单处理系统的案例演示了这些技术的综合应用,并提供了性能优化建议,如合理使用并行处理和避免循环内对象创建。这些现代特性使Java代码更简洁、高效,更适合高并发和I/O密集型场景。
178 1
|
12月前
|
缓存 算法 NoSQL
校招 Java 面试高频常见知识点深度解析与实战案例详细分享
《2025校招Java面试核心指南》总结了Java技术栈的最新考点,涵盖基础语法、并发编程和云原生技术三大维度: 现代Java特性:重点解析Java 17密封类、Record类型及响应式Stream API,通过电商案例演示函数式数据处理 并发革命:对比传统线程池与Java 21虚拟线程,详解Reactor模式在秒杀系统中的应用及背压机制 云原生实践:提供Spring Boot容器化部署方案,分析Spring WebFlux响应式编程和Redis Cluster缓存策略。
355 0
|
11月前
|
存储 缓存 安全
Java基础 - 知识点
Java基础知识点涵盖语言特性、面向对象与基本数据类型、缓存池机制、String类特性、参数传递、类型转换、继承、抽象类与接口区别、重写与重载、Object通用方法及关键字使用等核心内容,是掌握Java编程的重要基石。
159 0