我是c ++线程的新手,我目前正在使用boost进行线程化。我试图弄清楚如何阻止两个函数同时被调用。
void function1(){
//some task
}
void function2(){
//some other task
}
//both tasks can not run at the same time
如何停止功能1和功能2同时运行?
答案 0 :(得分:1)
您应该使用一些同步机制,例如它们之间共享的std::mutex
:
std::mutex m;
void function1() {
std::lock(m);
}
void function2(){
std::lock(m);
}