#include <iostream>
#include <thread>
#include <mutex>
#include <queue>
#include <chrono>
#include <condition_variable>
using namespace std;
int main(int argc,char **argv){
queue<int> buffer;
mutex m;
condition_variable cond_var;
int num;
thread producer([&](){
while(1){
this_thread::sleep_for(chrono::seconds(1));
unique_lock<std::mutex> lock(m);
num++;
cout<<"produucing"<<num<<endl;
buffer.push(num);
cond_var.notify_one();
}
});
thread consumer([&](){
while(1){
unique_lock<mutex> lock(m);
if(buffer.empty())
cond_var.wait(lock);
cout<<"consuming"<<buffer.front()<<endl;
buffer.pop();
}
});
producer.join();
consumer.join();
return 0;
}
消费者生产者问题
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.当代种种事件不同于历史之处,在于我们不知道它们会产生什么后果。 2.经验和利益的偶然结合,往往会向人们揭示...