c++11 线程同步信号的使用

来源:互联网 发布:数据建模视频 编辑:程序博客网 时间:2024/06/17 14:45

信号量的作用:一个线程等在哪里,其他的线程发出通知让等待的线程继续运行。

线程A

std::mutex m;

std::condition_variable c;


void A_proc()

{

std::unique_lock<std::mutex> lk(m); //进入临界区

c.wait(m); //A线程等待直到通知到来

}


void B_proc()

{

std::unique_lock<std::mutex> lk(m); //进入临界区

c.notify_one(); //通知线程A继续

}

这里需要注意在线程A进入临界区后B是不能同时进入的,当A调用wait后将放弃临界区控制,这导致B可以进入并进行通知notify_one。

0 0
原创粉丝点击