多次听说过死锁,但是在多线程编程的上下文中,死锁是什么呢?
更新: 抽象答案链接到白皮书,该白皮书解释了名为dreadlock的算法(似乎不是产品)。它相当全面地涵盖了这一概念。但是,简单地总结一下它的意义:
检测死锁的一个常见方法是跟踪哪些线程正在锁定哪些资源。这基本上会产生线程到资源的关系图,当循环出现在这个图中时,就会发生死锁。这种方法被称为自旋锁,并以昂贵而闻名,因此更有效的替代方法,如简单的锁定超时也是常用的。Dreadlock算法似乎是一种解决规则自锁算法中的不有效性的解决方案,方法是将跟踪锁定周期所需的数据量降到最低。
发布于 2011-06-09 12:10:31
您可以使用可怕的锁看起来像一种新产品或工具集来查找或检测死锁(尽管在发生死锁时,您将诅咒可怕的死锁)。(连接由Felix Kling提供)
发布于 2011-06-09 19:34:06
当一个进程请求一个资源,而该资源由其他等待进程持有,并且该进程永远无法更改它的状态时,这种情况称为死锁。
https://stackoverflow.com/questions/6292527
复制相似问题