并发程序的范例来自于一片古老的论文<<concurrent programming concepts>>中的一个流处理过程的实例。尽管说并发从语言级别支持要更加容易的多,但是对于C++来说,现阶段编写并发的方式还是以Multithread为主。
程序逻辑很简单,读取一个整数(实质上为了方便我直接用的是程序生成,偷懒了,哈哈),然后并行处理。注意处理这一步一定是高度并发的,这里我为了简单起见使用了sleep的方式来模拟真实时耗,然后数据改变仅仅是在原数上乘以二,最后输出。
输入和输出考虑到通常他们都是序列化的情况选择了单线程的方式,实际上如果条件允许,输入输出也完全可以是并发的。
对于中间的sleep+2乘这一步,才是真正并发的。之所以用sleep,是因为它能等到一定的时间并在此期间基本上不占用CPU,有点类似于MPU的情况。所以拿它还能做出来一些挺有意思的数据来(YY下SMP ^_^)。
工程文件下载注意记得将boost::thread的库文件的目录添加到附加库目录下。
只有boost源代码库没有二进制库的,可以访问
这里下载boost::thread所需要的lib和dll。(VC++8.0使用)
如果想自己编译boost而又懒得去看E文的,可以看
这里的编译教程。