#include <boost/thread/thread.hpp>
#include <boost/lockfree/spsc_queue.hpp>
#include <iostream> #include <boost/atomic.hpp> int producer_count = ;
boost::atomic_int consumer_count (); boost::lockfree::spsc_queue<int, boost::lockfree::capacity<> > spsc_queue;//但生产者但消费者队列,后面是指定其容量大小 const int iterations = ; void producer(void)
{
for (int i = ; i != iterations; ++i) {
int value = ++producer_count;
while (!spsc_queue.push(value))
;
}
} boost::atomic<bool> done (false); void consumer(void)
{
int value;
while (!done) {
while (spsc_queue.pop(value))
++consumer_count;
} while (spsc_queue.pop(value))
++consumer_count;
} int main(int argc, char* argv[])
{
using namespace std;
cout << "boost::lockfree::queue is ";
if (!spsc_queue.is_lock_free())
cout << "not ";
cout << "lockfree" << endl; boost::thread producer_thread(producer);//单生产者
boost::thread consumer_thread(consumer);//单消费者 producer_thread.join();
done = true;
consumer_thread.join(); cout << "produced " << producer_count << " objects." << endl;
cout << "consumed " << consumer_count << " objects." << endl;
getchar();
}

其实只要知道其实一种无锁队列是一种单生产者,单消费者的模式。

最新文章

  1. java反射 之 反射基础
  2. SASS+COMPASS 自适应 学习笔记
  3. 【转】 NGUI 监听按钮除OnClick外其他事件的方法,附简易改编的UIButton类
  4. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)
  5. 介绍开源的.net通信框架NetworkComms框架 源码分析(二十三 )TCPConnection
  6. Activity之间传递参数(二)
  7. firefox浏览器不能使用window.close的解决方案
  8. POJ 3373 Changing Digits(DP)
  9. iOS开发之详解正则表达式
  10. delphi中使用webbrowser提交表单
  11. MATLAB中的函数的归总
  12. WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(二)实现IRequestChannel(2016-03-15 12:35)
  13. 问题(bug)确实不在代码逻辑上面,往往是配置、权限或者业务逻辑之外的地方(转)
  14. redis beforesleep
  15. Java-判断一个数是不是素数
  16. 深入C#.NET数据类型
  17. Mysql之数据类型(胖胖老师)
  18. Cocos2D:塔防游戏制作之旅(九)
  19. CSS iconfont阿里巴巴矢量图库在开发中实战使用
  20. js查找、自组织数据

热门文章

  1. netty handlers模式
  2. ILockBytes Windows Mobile 6.5
  3. [Javascript] Write a Generator Function to Generate the Alphabet / Numbers
  4. struts2入门示例(hello world)
  5. js 队列和事件循环
  6. PL/SQL 异常错误处理
  7. 64位WinRAR5.0破解
  8. 关于struts、spring 和 hibernate的说明
  9. 【转载】Js获取当前日期时间及其它操作
  10. __attribute__系列之cleanup