码迷,mamicode.com
首页 > 其他好文 > 详细

condition

时间:2020-12-31 12:12:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:std   variable   unique   uniq   oid   ret   namespace   col   using   

#include <deque>
#include <thread>
#include <mutex>
#include <condition_variable>
using namespace std;

deque<int> queue;
mutex mtx;
condition_variable cond;

void dequeue()
{
    //1.必须与mutex一起使用
    //2.mutex已上锁的时候才能调用wait()
    //3.把bool条件判断放到while中

    unique_lock<mutex> lock(mtx);
    while(queue.empty())
    {
        cond.wait(lock);//会解锁,并等待
        //wait执行完毕自动重新加锁
    }    
    queue.pop_front();
}

void enqueue()
{
    unique_lock<mutex> lock(mtx);
    queue.push_back(1);
    cond.notify_one();
}

//int main()
//{
//    thread th1(dequeue);
//    thread th2(enqueue);
//
//    th1.join();
//    th2.join();
//    return 0;
//}

 

condition

标签:std   variable   unique   uniq   oid   ret   namespace   col   using   

原文地址:https://www.cnblogs.com/zzyoucan/p/14193703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!