Gibt es eine Möglichkeit, dass ich std::lock_gaurd
anweisen kann, try_lock
anstelle von lock
aufzurufen, wenn es den Mutex erwirbt?
Ich kann nur daran denken, std::adopt_lock
:
Gibt es eine integrierte Lösung für mein Problem, anstatt die Sperre explizit zu übernehmen und dann lock_guard
die Verantwortung für die Freigabe zu geben?
Eine grundlegende Entwurfsinvariante von lock_guard
ist, dass sie immer die Sperre enthält. Dies minimiert den Overhead, da der Destruktor bedingungslos unlock()
aufrufen kann und keinen zusätzlichen Status speichern muss.
Wenn Sie das try-to-lock-Verhalten benötigen, verwenden Sie unique_lock
:
Tags und Links c++ multithreading c++11 mutex