gpt4 book ai didi

c++ - 函数体中静态定义的互斥量是否能够正确锁定?

转载 作者:可可西里 更新时间:2023-11-01 18:23:18 24 4
gpt4 key购买 nike

在函数体中静态定义的互斥量是否能够正确锁定?我目前在我的记录器系统中使用这种模式,但我还没有测试它的线程安全性。

void foo () {
static std::mutex mu;
std::lock_guard<std::mutex> guard(mu);
...
}

最佳答案

是的,这很好。函数第一次被调用时 mu 将被初始化(这保证是线程安全的并且只发生一次)然后 guard 将锁定它。如果另一个线程调用 foo 它将等待

std::lock_guard<std::mutex> guard(mu);

直到对 foo 的第一次调用完成并且 guard 被销毁并解锁 mu

关于c++ - 函数体中静态定义的互斥量是否能够正确锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53233931/

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