小编Ami*_*sti的帖子

在代码的其他部分使用与 lock_gard 相同的互斥锁并且不使用它是否安全

我有一个命名空间,下面的 func1 和 func2 将从不同的线程调用。

#include<thread>
namespace test{

    std::mutex mu;

    void func1(){
        std::lock_guard<mutex>lock(mu);
       //the whole function needs to be protected
    }

    void func2() {
        mu.lock();
        //some code that should not be executed when func1 is executed
        mu.unlock();
        //some other code
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此互斥锁(一次与 lock_guard 一起使用并在其外部)来保护这些关键部分是否安全?如果不是如何实现这个逻辑?

c++ multithreading mutex raii thread-safety

4
推荐指数
1
解决办法
1386
查看次数

标签 统计

c++ ×1

multithreading ×1

mutex ×1

raii ×1

thread-safety ×1