java线程状态以及其演变路径

java线程有多少种状态?

核心理解是:当下是否拥有CPU时间;
非拥有CPU时间的状态(阻塞OR等待),是如何被唤醒,超时自动唤醒?或被其他线程唤醒?自动被"操作系统"选择切换?

各种状态间的转换方式与路径

jvm或操作系统有能力直接干预线程的状态!

线程与对象的关系

线程与线程的关系==>交集

对象与对象的关系

线程的结构

线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能,线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度。
参考

对象的结构

java线程与操作系统线程在状态,执行逻辑上的映射关系;

三种基本的状态

  1. Ready 代表当前的线程实例在可执行队列中,随时可以被(系统内核调度算法)切换到占用处理器的运行状态。
  2. Running代表当前的线程实例正在占用处理器运行中。
  3. Blocked代表当前的线程实例在等待相应的资源。
  4. java中线程未获得对象的锁而阻塞与操作系统中阻塞的联系.

超时等待

超时中断

用两个线程去处理

猜你喜欢

转载自blog.csdn.net/TianLiaoFeiJue/article/details/84670718