博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读书笔记:死锁
阅读量:2260 次
发布时间:2019-05-09

本文共 306 字,大约阅读时间需要 1 分钟。

概念:某个任务在等地另外一个任务,后者又在等待别的任务,一直下去,直到这个链上的任务又在等第一个任务释放锁,这就得到了一个人任务之间互相等待的连续循环,没有哪个线程能够继续,叫死锁。

同时满足四个条件就发生死锁:

1.互斥条件,任务使用的资源中至少有一个是不能共享的

2.至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源

3.资源不能被任务抢占,任务必须把资源当做普通事件

4.必须有循环等待,这时,一个任务等待其他任务所持有的资源,而后者又在等待另外一个任务所持有的资源

也就是破坏上面条件中任何一个就可以规避死锁,最容易破坏4

具体案例参考 thinking in java 723

 

 

 

转载地址:http://glfcb.baihongyu.com/

你可能感兴趣的文章
如何在Ruby中写入文件?
查看>>
对象引用未保存的瞬态实例-在刷新之前保存瞬态实例
查看>>
从命令行传递其他变量来制作
查看>>
在Django中,“子弹”是什么?
查看>>
如何编辑Subversion中已提交的日志消息?
查看>>
SQL Server:数据库陷入“恢复”状态
查看>>
如何克隆到非空目录?
查看>>
如何在Java中解析命令行参数?
查看>>
在C#中Java的最终版本相当于什么?
查看>>
如何在现有的<ul>中添加<li>?
查看>>
HTML表中的自动换行
查看>>
什么算法计算地图上从A点到B点的方向?
查看>>
静态库和共享库之间的区别?
查看>>
如何判断UIViewController的视图是否可见
查看>>
System.Timers.Timer与System.Threading.Timer
查看>>
为什么在C#中捕获并抛出异常?
查看>>
宇宙射线:它们对程序产生影响的概率是多少?
查看>>
如何找到foreach索引
查看>>
Android:展开/折叠动画
查看>>
在C#中合并字典
查看>>