檢查std::shared_ptr 的非原子等效項
簡介
簡介
簡介
尋找非原子替代方案
與問題的前提相反,std::shared_ptr 並不是
中唯一的智慧指標。以具有原子性。 std::weak_ptr 也是原子的,為需要非擁有引用的場景提供了一個潛在的解決方案。然而,對專用非原子共享指標替代方案的興趣表明庫中存在明顯的差距。
排除的原因-
儘管非原子的潛在好處原子shared_ptr,C標準委員會選擇不在C 11中包含一個。該決定源自於2010年Rapperswil會議上的激烈辯論。反對將其包含在內的論點包括:
-
未來線程使用的潛力:
非原子共享指針可能會無意中用於多線程上下文,從而導致微妙且難以檢測的錯誤。 -
智慧指標設計的一致性:
統一的shared_ptr在所有用例中統一處理引用計數,簡化了互通性和函式庫的使用。 -
最小的效能成本:
shared_ptr 中的原子操作並不是非常昂貴,特別是考慮到繞過原子操作的移動操作。
使用者選擇:開發人員可以自由創建自己的非原子引用計數智慧如果需要,可以使用指標。
結論C 11 標準中缺少 std::shared_ptr 的非原子等效項是多方面的。雖然它損害了「按使用量付費」的原則,但它優先考慮一致性、避免錯誤和最小的效能開銷。該決定反映了提供最佳靈活性和確保程式碼穩健性之間的折衷。 以上是為什麼 C 標準函式庫中沒有 std::shared_ptr 的非原子等效項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!