我了解递归互斥锁允许互斥锁多次锁定而不会陷入死锁,并且应该解锁相同的次数。但是在什么特定情况下需要使用递归互斥锁呢?我正在寻找设计/代码级别的情况。
原文由 jasonline 发布,翻译遵循 CC BY-SA 4.0 许可协议
我了解递归互斥锁允许互斥锁多次锁定而不会陷入死锁,并且应该解锁相同的次数。但是在什么特定情况下需要使用递归互斥锁呢?我正在寻找设计/代码级别的情况。
原文由 jasonline 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答468 阅读✓ 已解决
例如,当您有递归调用它的函数,并且您想要同步访问它时:
如果没有递归互斥锁,您必须首先创建一个“入口点”函数,当您拥有一组相互递归的函数时,这会变得很麻烦。没有递归互斥锁: