按照这个article http://www.devx.com/SpecialReports/Article/38883/1954:
如果您尝试从同一线程两次锁定非递归互斥锁,而中间没有解锁,则会出现未定义的行为。
我非常天真的想法告诉我为什么他们不返回一个错误?这有什么理由必须是UB吗?
因为它永远不会在正确的程序中发生,并且对从未发生的事情进行检查是浪费的(并且为了进行该检查,它需要存储所属线程 ID,这也是浪费的)。
请注意,例如,未定义它允许调试实现抛出异常,同时仍然允许发布实现尽可能高效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)