首页 > 代码库 > C++ boost库无锁队列多线程并行测试与编译方法
C++ boost库无锁队列多线程并行测试与编译方法
阅读了网络中关于Boost库无锁队列的源代码,但却缺少编译方法。经过测试,确定了ubuntu 14.04中编译boost库的方法,特做记录。
无锁(free-lock)是实现高性能多线程并发编程的重要技术。
作为C++11 STL参考实现的boost库,不仅支持11标准,而且做了许多扩展,掌握其使用方法,对于提高代码质量,尤其重要。
以其多线程并行无锁队列为例,结合代码和说明,演示了无锁boost库的使用和编译方法。
代码及说明如下:
//source: boost_queue.cpp //目的: 测试boost无锁队列的使用方法 //操作系统:ubuntu 14.04 //安装boost库命令:sudo apt-get install libboost-all-dev //pubdate: 2015-1-31 当前boost-dev版本是1.54 //编译命令: g++ boost_queue.cpp -lboost_thread -lboost_system //boost include位置: /usr/include/boost //boost lib位置: ls /usr/lib/x86_64-linux-gnu/ | grep 'boost' #include <boost/thread/thread.hpp> #include <boost/lockfree/queue.hpp> #include <iostream> #include <boost/atomic.hpp> using namespace std; //生产数量 boost::atomic_int producer_count(0); //消费数量 boost::atomic_int consumer_count(0); //队列 boost::lockfree::queue<int> queue(512); //迭代次数 const int iterations = 1000000; //生产线程数 const int producer_thread_count = 4; //消费线程数 const int consumer_thread_count = 2; //生产函数 void producer(void) { for (int i = 0; i != iterations; ++i) { //原子计数————多线程不存在计数不上的情况 int value = http://www.mamicode.com/++producer_count;>C++ boost库无锁队列多线程并行测试与编译方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。