簡體   English   中英

何時在 std::shared_lock 上使用 defer_lock?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM