gpt4 book ai didi

c++ - 关于 std::unique_lock 我应该知道些什么?

转载 作者:行者123 更新时间:2023-11-27 23:59:26 29 4
gpt4 key购买 nike

据我所知,std::unique_lock 是一种围绕底层 mutex 对象的包装器,以提供更安全使用原始 mutexes 实现(例如,如果抛出异常或销毁时,最终处于解锁状态)。这就是所有 std::unique_lock 的用途吗?

尝试#1

std::mutex m;  // global 
void foo() {
m.lock();
// critical section
m.unlock();
}

尝试 #2

std::mutex m;  // global 
void foo() {
std::unique_lock<std::mutex> ul(m);
// critical section
}

Try #2 是否优于 Try #1,这就是 std::unique_lock 的用途吗?请提供一些可能需要 std::unique_lock 的其他示例。

最佳答案

是的,这正是它的用途,以及您应该使用它的原因。

它确实超出了您给出的简单示例的一点;尤其是与时间相关的内容,您自己实现起来会很复杂,但您可以做到。不过,最终,是的,它是一个包装器。

来自 cppreference on unique_lock :

The class unique_lock is a general-purpose mutex ownership wrapper allowing deferred locking, time-constrained attempts at locking, recursive locking, transfer of lock ownership, and use with condition variables.

关于c++ - 关于 std::unique_lock 我应该知道些什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321587/

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