C ++线程:如何阻止两个不同的函数同时被调用?

时间:2016-07-21 16:36:45

标签: c++ multithreading

我是c ++线程的新手,我目前正在使用boost进行线程化。我试图弄清楚如何阻止两个函数同时被调用。

void function1(){
   //some task


}

void function2(){
   //some other task


}
 //both tasks can not run at the same time

如何停止功能1和功能2同时运行?

1 个答案:

答案 0 :(得分:1)

您应该使用一些同步机制,例如它们之间共享的std::mutex

std::mutex m;

void function1() {
    std::lock(m);
}

void function2(){
    std::lock(m);
}