C++ mutex()函数和lock()函数
mutex用来协助采取独占方式控制对资源的并发访问,这里的资源对象可以是一个对象,或者多个对象的组合,为了获得独占式的资源访问能力,相应的线程必须锁定mutex,这样可以防止其他线程也锁定该mutex。
例子:
mutex mtx;
void print123()
{
mtx.lock();
for (int i = 0;i<3;i++){
this_thread::sleep_for(chrono:milliseconds(100));
cout << i + 1;
}
mtx.enlock();
}
int main()
{
thread(print123).detach();
thread(print123).detach();
}
输出结果是:123123
如果线程没有使用mutex来同步,则输出的结果是:112233