tbb/concurrent_queue example

#include <iostream>
#include "tbb/concurrent_queue.h"
#include <thread>
using namespace std;
void worker1();
void worker2();
void worker3();

void consumer();

tbb::concurrent_queue<int> pq;
int main(){
    thread t1(worker1);
    t1.detach();
    thread t2(worker2);
    t2.detach();
    thread t3(worker3);
    t3.detach();
    thread t4(consumer);
    t4.detach();
    while(true);
}


void worker1(){
    while(true)
        pq.push(1);
}

void worker2(){
    while(true)
        pq.push(2);
}

void worker3(){
    while(true)
        pq.push(3);
}

void consumer(){
    int i;
    while(pq.try_pop(i))
        cout<<i<<endl;
}

result:结果比较均匀(截取的中间结果)

1
2
1
3
2
1
3
2
1
2
1
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
1
2
3
2
1
3
1
2
3
2
1
3
2
1
3
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 5,209评论 3 23
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,205评论 0 6
  • 有人说寂寞 会传染 思念 有始有终 也有人说寂寞 是一根金色弦 直达心灵深处 让内心的真实,最接近人生的真谛 他们...
    江城妖怪阅读 228评论 0 3
  • 沙巴回来已经一个星期多了,无所事事的我天天在家睁眼闭眼都是王者荣耀,这几天有很多人都来问我沙巴旅行的一些事宜,我想...
    猪蹄儿Nowhere阅读 1,754评论 4 2
  • “你在哪呢?” “还在老地方等你” 小西在车里抽着烟,等着小北,他们认识差不多一年了,在一起断断续续也折腾了好几个...
    cherishmoment阅读 199评论 0 0