需求
很多时候,需要用到多线程,但是线程每一次的分配都需要消耗时间,同时线程也不是无限制的开启的(需要固定一个数量)。
如果我们既想要固定数量,又不想每次都new一个线程,我们这么做就能满足要求:
a、固定一个数量,表示最大可使用线程的个数,threadCount=8;
b、在程序开始的时候,直接new出来threadCount个线程,假如存放到thread[threadCount-1]中
c、遇到一个任务,从thread[threadCount-1]中取出来一个线程,设置他的任务为Task,并且让threadCount-1,让此线程start
d、线程中的任务结束后让,threadCount+1
把源码下载下来,解压得到一个文件夹和hpp文件
拷贝到(或者直接解压到boost目录中)
打开vs(使用比较低版本的vs2010,要求比较高,同时没有c11可以使用,在vs2015也同样通过了测试)
如果还不会使用OpenCV和boost,可以参考blog文:
编译并使用opencv3.2:http://blog.csdn.net/zengraoli/article/details/70185803
编译并使用boost1.63:http://blog.csdn.net/zengraoli/article/details/70187556
测试例子的功能是浏览一个文件夹里面的1到10张图片,对比用单线程显示一张图片,和用8个线程同时显示的耗时对比
代码如下:
效果如下:
转自:http://blog.csdn.net/zengraoli/article/details/70187693
本文介绍了一个使用Boost线程池库实现的线程池应用案例,对比了单线程和多线程显示图片的效率差异。
462

被折叠的 条评论
为什么被折叠?



