6

std::shared_lock新しい標準のテンプレートクラスが非常に不足しています。Boost.Threadにはboost::shared_lock、存在すらboost::upgrade_lockあります。

それはなぜですか、std :: shared_lockがなくstd::unique_lock、C ++ 11にはありませんか?純粋なC++11で、これ
までと同様の動作をどのように取得できますか?boost::shared_lock

使ってみようと思っていたのですが、メンバーがいないboost::shared_lock<std::mutex>のであまり意味がありません。また、のようなものはありません。std::mutexlock_shared()std::shared_mutex

4

1 に答える 1

11

ハワードの提案はstd::shared_mutex、C ++ 11を適切に検討する時間がなかったため、却下されました。彼はC++17のためにそれを再び提案しました、そしてそれは今週ポートランドでの会議で議論されています。

それまでの間、Boostを使用できるのであれば、それも可能です。標準化されるための新しい機能はありません。

とは言うものの、使用することが実際に有益であることを確認する価値がshared_mutexあります---多くの場合、ミューテックス自体の競合により、期待されるパフォーマンスの向上は得られません。

于 2012-10-18T13:09:15.517 に答える