先说结论:
Java线程中一共有6种状态 , 分别为:NEW、RUNNABLE、WAITING、TIMED_WAITING、BLOCKED、TERMINATED , 其中RUNNABLE包含READY和RUNNING状态 , 详情可见下图:
- NEW:new一个Thread对象 , 但没有调用start方法前 , 线程处于初始状态
- RUNNABLE:在Java中包括两种状态 , RUNNING和READY
- 【Java|谈谈Java线程有几种状态?】READY:就绪态 , 该状态下的线程已经获得执行所需的所有资源 , 只要CPU分配执行权就能运行;所有就绪态的线程存放在就绪队列中
- RUNNING:获得cpu时间片 , 正在执行的线程;由于每个cpu同一时刻只能执行一条线程 , 因此每个cpu每个时刻只有一条线程运行 。
- BLOCKED:阻塞态 , 当线程请求锁失败时 , 就会进入阻塞态 , 一旦请求成功就会进入就绪队列等待cpu调度;所有阻塞态的线程存放在阻塞队列中
- WAITING:等待态 , 当运行中的线程调用wait、join、park函数时 , 当前线程进入等待态;所有等待线程放入等待队列;等待状态的线程需要被其他线程唤醒才能继续运行;进入等待状态会释放cpu时间片 , 以及资源(一般指锁)
- TIMED_WAITING:超时等待态 , 当运行中的线程调用sleep(time)、wait(time)、parkNanos、parkUtil时会进入超时等待态;和等待态的区别就是 , 超时之后会加入到阻塞队列中去 。
- amd锐龙7000处理器真身谍照公布,16核心32线程
- 三星|用过三星华为旗舰后,谈谈为啥我选了这款兼具两者优点的双芯旗舰
- Java|不降价根本卖不掉,三星12+256G再降2300元,这本下得很足
- Java|“扫脸支付”真的安全吗?有人用马云照片付款后,弹出了4个字!
- Java|被疫情“偷走”的三年 冰箱行业加速蝶变
- 阿里巴巴|Java:为什么使用Spring?
- javascript|技术立根,行业立范,发展立本:中国工业互联网的2.0新征程
- InnoDB|谈谈Java线程有几种状态?
- Java|?大牛证券|带货1751亿!“短视频第一股”一季报亮点纷呈
- javascript|“内卷之王”来了!Redmi Note11T Pro手机用2大创新4大优势折桂