簡體   English   中英

下限是否為recursive_mutex的最大所有權級別?

[英]Lower bound for the maximum level of ownership for recursive_mutex?

引用[thread.mutex.recursive]

擁有recursive_mutex對象的線程可以通過在該對象上調用lock()try_lock()獲得其他所有權級別。 未指定單個線程可以獲取多少級別的所有權。 如果線程已經獲得了recursive_mutex對象的最大所有權級別,則對try_lock()其他調用將失敗,而對lock()其他調用將引發system_error類型的異常。

最大所有權級別 ”的下限是否大於1? 遞歸pthread互斥鎖呢?

標准中沒有下限。 這可能是故意的。

較舊的標准(CI認為)確實為此類情況提供了較低的限制。 結果是人們寫了編碼標准,說您不能使用這些下限。 例如:在(我仍然認為)實現定義了在比較相等性時外部符號的多少個字符有效。 因此, a_very_very_long_name_indeed_with_extra_paddinga_very_very_long_name_indeed_with_extra_paddingX可能被視為相同的符號。 將最小長度指定為8,並編寫了編碼標准,指定“外部符號的最大長度為8個字符”。

關於該值的合理下限:我可以輕松地想象一下,該計數可能會被打包到其他字段中,以便可以使用合適的指令以原子方式對整個對象進行更新。 因此,它可能少於32位。 (實際上只需要足夠大才能達到最大調用堆棧深度,因此在受限環境中,31可能就足夠了。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM