![](/img/trans.png)
[英]When to use C++11 mutex, lock, unique_lock, shared_lock, etc
[英]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.