PJT*_*PJT 9 c++ synchronization mutex deadlock semaphore
使用互斥锁和信号量处理线程(特别是在C++中)时,有一个简单的经验法则可以避免死锁并具有良好的干净同步效果吗?
Asa*_*aph 16
一个简单的经验法则是始终从应用程序的任何位置以一致的可预测顺序获取锁.例如,如果您的资源具有名称,请始终按字母顺序锁定它们.如果它们具有数字ID,则始终从最低到最高锁定.确切的顺序或标准是任意的.关键是要保持一致.这样你就永远不会遇到僵局.例如.
如果您遵循上面概述的经验法则,上述情况永远不会发生.有关更详细的讨论,请参阅关于Dining Philosophers问题的Wikipedia条目.