摘要: 在软件开发里,常常遇到多个任务同时添加的情况,比如用户要下载一部电视连续剧,就会一起添加几十集,让它一集一集地下载。如果这时使用线程池来运行,就需要这个任务队列可以多个线程同时访问它,如果队列里没有任务时,可以让多个线程等着,只要有任务到达,就立即运行。在boost库里提供了一个强大的任务队列,这个队列可以使用线程池访问,也可以当任务为空时阻塞线程。使用这个任务队列,可以让多个任务动态运行,以及适应不同的情况,可以得心应手。在Windows系统上实现是采用IOCP的原理来实现,因此这个任务队列不但可以运行一般的任务,也适用于网络应用方面。具体的使用例子如下:[cpp] view plainco 阅读全文
posted @ 2013-11-29 14:11 孤火 阅读(1615) 评论(1) 推荐(0) 编辑
摘要: 很不错的博客一定得看http://my.csdn.net/caimouse1、下载boost库从http://www.boost.org上下载到目前最新的boost库,快速传送门:boost_1_53_0.zip,当然你也可以从http://sourceforge.net/projects/boost/files/boost-jam/这里得到源代码,快速传送门:boost_1_53_0.zip(98.1 MB)我使用了后者2、得到源代码之后,使用vs2012的cl.exe编译进入到源代码目录中3、建立编译工具bjam.exe----需要执行bootstrap.bat4、指定编译命令指定msvc 阅读全文
posted @ 2013-11-29 13:33 孤火 阅读(6012) 评论(5) 推荐(0) 编辑
摘要: 近 半年主要是开发公司行情系统Feedhandler(一共十几个Feedhandler,包括沪深L1、L2,港股,国内期货,国际股票,国际期货 等。)。此系统要求跨平台、大吞吐量,超低延迟,属于CPU密集型系统。在项目过程中,有几个比较好的封装类,跟大家一起分享一下。以下所有源代码可至 http://download.csdn.net/detail/great3779/3998262 下载 一。基于Boost的跨平台锁。封装了Boost的mutex,提供了lock和unlock方法。代码示例如下:[cpp] view plaincopy#pragmaonce//Author:Huangzhid 阅读全文
posted @ 2013-11-29 13:02 孤火 阅读(788) 评论(0) 推荐(1) 编辑
摘要: #include#include#include#include#include#include#include#include#includeusingnamespacestd;usingnamespaceboost;boost::recursive_mutexio_mutex;boost::condition_variable_anycond;std::queueiq;classprinter{public:printer(boost::asio::io_service&io,intn):strand_(io),timer1_(io,boost::posix_time::secon 阅读全文
posted @ 2013-11-29 13:01 孤火 阅读(470) 评论(0) 推荐(0) 编辑