引用[thread.mutex.recursive]:
“最大所有权级别”的下限是否大于1?递归pthread互斥锁呢?
最佳答案
标准中没有下限。这可能是故意的。
较旧的标准(我认为C)确实为此类情况提供了较低的限制。结果是人们写了编码标准,说您不能使用这些下限。例如:(我仍然认为)实现定义了在比较相等性时外部符号的多少个字符有效。因此a_very_very_long_name_indeed_with_extra_padding
和a_very_very_long_name_indeed_with_extra_paddingX
可能被视为相同的符号。将最小长度指定为8,并编写了编码标准,指定“外部符号的最大长度为8个字符”。
在此值的合理下限上:我可以轻松地想象一下,该计数可能会被打包到其他字段中,以便可以使用适当的指令以原子方式对整个对象进行更新。因此,少于32位可能会很多。 (实际上只需要足够大才能达到最大调用堆栈深度,因此在受限的环境中,31可能就足够了。)
关于c++ - 下限是否为recursive_mutex的最大所有权级别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37203741/