JavaEE初阶 进程 && 线程(3)

Java线程状态详解与转换

本文旨在 浅谈线程的状态

经过前面的学习 我们可以知道  在操作系统的视角上看         进程的状态分为

  • 就绪
  • 阻塞

1.线程的状态

线程的状态是⼀个枚举类型Thread.State

分类如下

1.1 New

指 New 了Thread对象 还没开始start

1.2 Terminated

表示内核的线程已经结束 但是Thread的对象还存在

1.3Runnable 

表示就绪  分为两种

  1. 线程正在CPU上执行
  2. 线程随时可以去CPU上执行

1.4Timed_Waiting

表示时间的阻塞                     线程阻塞(不参与CPU调度 不继续执行)          阻塞的时间是有上限的

1.5 Waiting

死等 阻塞时间无上限

1.6 Blocked

是一种由于锁导致的特殊阻塞

2.线程状态的转换关系

New 一个Thread对象 还没开始执行start() 

执行start后 前往cpu调度  进入Runnable 状态

此时如果使用线程休眠Sleep() 或者线程等待 Join()

则会进入Timed_Waiting状态        当休眠 或者等待的时间 到了 就会恢复Runnable状态

此时如果代码中啥也不做  例如死循环中啥也没有(见下图)

就会进入Waiting状态

当线程恢复正轨后结束 便会进入Terminated状态

具体状态分布如下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值