タグ付けされた質問 「stdmutex」

6
std :: unique_lock <std :: mutex>またはstd :: lock_guard <std :: mutex>?
StackаэтотвопросестьответынаStack Overflowнарусском:Чемstd :: unique_lockотличаетсяотstd :: lock_guard? 2つの使用例があります。 A. 2つのスレッドによるアクセスをキューに同期させたい。 B. 2つのスレッドによるキューへのアクセスを同期し、条件変数を使用したいのは、一方のスレッドが、もう一方のスレッドによってコンテンツがキューに格納されるのを待つためです。 ユースケースAIについては、を使用しstd::lock_guard&lt;&gt;たコード例を参照してください。使用例については、BIを使用したコード例を参照してくださいstd::unique_lock&lt;&gt;。 この2つの違いと、どのユースケースでどちらを使用すればよいのですか?

2
非原子型に対してstd :: atomic_refはどのように実装されていますか?
次のプロパティを適用するのはかなり難しいように思われるので、非アトミックオブジェクトに対してどのようにstd::atomic_ref効率的に(std::mutexオブジェクトごとに1 つ)実装できるのかと思います。 atomic_refを介してオブジェクトに適用されるアトミック操作は、同じオブジェクトを参照する他のatomic_refを介して適用されるアトミック操作に対してアトミックです。 特に、次のコード: void set(std::vector&lt;Big&gt; &amp;objs, size_t i, const Big &amp;val) { std::atomic_ref RefI{objs[i]}; RefI.store(val); } 同じタイプのすべてのオブジェクトによって共有される大きなマスターロックでない限りstd::atomic_ref、同じものを毎回選択する必要があるため、実装は非常に難しいようstd::mutexです。 何か不足していますか?または、各オブジェクトは実装std::atomic_refを担当するため、アトミックであるか、std::mutex?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.