c++11条件变量的使用,condition_variable

来源:互联网 发布:伊甸园本站域名叫什么 编辑:程序博客网 时间:2024/05/16 16:10
void  thread_prepare(int T){std::lock_guard<std::mutex> lk(mt);data_queue.push(T);data_con.notify_one();}

void thread_process(){while(1){std::unique_lock<std::mutex> lk(mt);data_con.wait(lk,[]{return !data_queue.empty();});std::cout<<data_queue.front()<<std::endl;data_queue.pop();lk.unlock();}}


thread_process中,data_con的wait中,会持续等待notify,若没有Notify便会一直沉睡。

即节省线程的时间片。

1 0
原创粉丝点击