[英]When to use defer_lock on std::shared_lock?
我從 cppreference 看到:
std::shared_lock<Mutex>::shared_lock
C++ Thread support library std::shared_lock
shared_lock() noexcept;
(1) (since C++14)
shared_lock( shared_lock&& other ) noexcept;
(2) (since C++14)
explicit shared_lock( mutex_type& m );
(3) (since C++14)
shared_lock( mutex_type& m, std::defer_lock_t t ) noexcept;
(4) (since C++14)
和:
4) Does not lock the associated mutex.
好吧,如果這個 defer_lock 意味着我們不鎖定互斥鎖,那么這個lock
到底有什么用呢?
什么時候需要指定defer_lock
參數,對於什么樣的使用場景?
謝謝!
您以后可以隨時使用lock()
鎖定互斥鎖。
有時,由於范圍規則或其他原因,您不想在創建鎖 object 時立即鎖定任何內容; 但是您仍然希望在離開聲明的 scope 時自動釋放鎖。
這允許您實例化一個鎖 object,而不是立即鎖定任何東西,而是稍后lock()
它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.