我们有两个成员函数:类的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);
}