簡體   English   中英

如何在標准C ++ 11中創建shared_lock或upgrade_lock?

[英]How to make a shared_lock or upgrade_lock in standard C++11?

我從新標准std::shared_lock模板類中遺漏了很多東西。 在Boost.Thread中有boost::shared_lock ,甚至還存在boost::upgrade_lock

為什么這樣,C ++ 11中沒有std :: shared_lock和std::unique_lock
如何獲得類似boost::shared_lock的類似行為,但在純C ++ 11中呢?

我正在考慮使用boost::shared_lock<std::mutex> ,但這沒有多大意義,因為std::mutex沒有lock_shared()成員。 而且,沒有像std::shared_mutex

霍華德對std::shared_mutex的提議由於沒有時間正確考慮而被C ++ 11拒之門外。 他再次為C ++ 17提出了這個問題,本周在波特蘭舉行的會議上對此進行了討論。

同時,如果你可以使用Boost那么你也可以; 標准化不會有任何新功能。

也就是說,值得檢查的是,使用shared_mutex實際上是有益的 - 在許多情況下,由於互斥鎖本身的爭用,它無法提供所希望的性能提升。

暫無
暫無

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

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