使用C ++ 11功能同步2个成员函数

时间:2019-02-22 02:03:50

标签: c++ c++11

我们有两个成员函数:类的a()和b()

只有一个主线程,我们希望当成员方法a()正在执行从其他流程对b()成员方法的调用时,应等待直到a()执行结束,反之亦然。因此,需要应用以下限制:

a() and b() method should not execute together at any same time

如何使用C ++ 11功能对其进行编码?

由于我不熟悉C ++ 11功能,因此以下实现会起作用:

#include <mutex>
#include <thread>

std::mutex a_lock;

void a() 
{
    std::lock_guard<std::mutex> lock(a_lock);
}

void b()
{
    std::lock_guard<std::mutex> lock(a_lock);

}

0 个答案:

没有答案