是否有递归锁的用例?是否存在绝对需要递归锁的场景。
使用起来似乎很复杂且危险。我可以看到我们可以避免死锁(只要锁堆栈不溢出),但我们不想捕获这样的问题吗?
也许我在这里遗漏了一些东西。任何指示表示赞赏。
提前致谢。
我喜欢这个博客条目的标题:
递归锁会杀了你 http://www.fieryrobot.com/blog/2008/10/14/recursive-locks-will-kill-you/
我也喜欢这句话:
http://www.thinkingparallel.com/2006/09/27/recursive-locks-a-blessing-or-a-curse/ http://www.thinkingparallel.com/2006/09/27/recursive-locks-a-blessing-or-a-curse/
不要使用递归互斥体。这类似于使用用过的避孕套进行性行为。
最后,这是一篇非常有趣的文章,介绍了递归锁最初是如何进入 Posix pthread 的:
递归互斥锁是一种黑客手段。使用它们并没有什么问题,
但它们是拐杖。腿断了还是图书馆断了?很好,使用
拐杖。但至少要知道你正在使用拐杖,以及为什么;和
偶尔检查一下腿(或图书馆)以确保您仍然
需要拐杖。如果没有痊愈,就去看医生,因为
那不行。当你别无选择时,使用并不可耻
拐杖...但是你不能靠拐杖跑得很好,而且你也会
放慢任何依赖你的人的速度。
递归互斥锁是构建线程支持原型的绝佳工具
在现有的库中,正是因为它可以让您推迟困难
部分:库的调用路径和数据依赖分析。但
出于同样的原因,永远记住,你还没有完成,直到
它们都消失了,所以你可以创建一个你引以为豪的库,
不会不必要地限制整个并发
应用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)