首先分享之前的所有文章 , 欢迎点赞收藏转发三连下次一定 >>>> 😜😜😜
文章合集 : 🎁 juejin.cn/post/694164…
Github : 👉 github.com/black-ant
CASE 备份 : 👉 gitee.com/antblack/ca…
前言
这一篇说一说线程状态
一. 线程等待
1 | java复制代码// 等待具体时间 |
二. 线程通知
1 | java复制代码// 对于设定具体等待时间的 timeout 后自动转入就绪 |
1 | java复制代码> 执行wait () 时释放锁 , 否则等待的线程如果继续持有锁 , 其他线程就没办法获取锁 , 会陷入死锁 |
三. 线程中断
1 | java复制代码> interrupt() |
四. 线程死锁
死锁简介 : 当多个进程竞争资源时互相等待对方的资源
死锁的条件 :
- 互斥条件 : 一个资源每次只能被一个进程使用,即在一段时间内某 资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。
- 请求与保持条件 :进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
- 不可剥夺条件 : 进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放(只能是主动释放)。
- 循环等待条件 : 若干进程间形成首尾相接循环等待资源的关系
1 | java复制代码// 资源的分类 |
五. 线程热锁
1 | java复制代码> 热锁不算一个物理概念 , 它表示线程在频繁的竞争资源并且资源在频繁的切换\ |
六. 线程的状态及转换
1 | JAVA复制代码> 线程有以下状态 |
七. 状态转换的原理
7.1 wait 与 notify 原理
1 | java复制代码// 节点一 : 你是否发现 , wait 和 notify 是 object 的方法 |
7.2 Thread run
1 | java复制代码// 节点一 : 区别 run 和 start |
7.3 Thread yield
1 | java复制代码C- Thread |
总结
很多东西还是没完全说清楚 , 后面还得继续完善
更新记录
- 20210727 : 完善代码 , 优化格局
致谢
1 | java复制代码芋道源码 : http://www.iocoder.cn/JUC/sike/aqs-3/ |
本文转载自: 掘金