gpt4 book ai didi

c++ - 什么时候在 std::shared_lock 上使用 defer_lock?

转载 作者:行者123 更新时间:2023-12-05 03:20:22 25 4
gpt4 key购买 nike

我从 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() 锁定互斥锁。

有时,由于作用域规则或其他原因,您不想在创建锁定对象时立即锁定任何东西;但是您仍然希望在离开声明范围时自动释放锁。

这允许您实例化一个锁定对象,而不是立即锁定任何东西,而是稍后lock()

关于c++ - 什么时候在 std::shared_lock 上使用 defer_lock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73179819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com