//这个是我代码里面的一部分,利用parallel_while 循环实现的一个框架
class Body {
tbb::parallel_while<Body>& my_while;
public:
Body( tbb::parallel_while<Body>& w ) : my_while(w) {}
//------------------------------------------------------------------------
// Following signatures required by parallel_while
//------------------------------------------------------------------------
typedef long argument_type;
void operator()( long c ) const {
Function(c);// 这个地方的Function,就是需要自己实现的部分,
}
};
class Stream {
id_queue_type& my_queue;
public:
Stream(id_queue_type& _queue ) : my_queue(_queue) {}
bool pop_if_present( long& item ) {
return my_queue.pop_if_present(item);
}
};
void ParallelPreorderTraversal(id_queue_type& _queue ) {
tbb::parallel_while<Body> w;
Stream s(_queue);
w.run(_queue,Body(w));
}
void StartAlgrorithm()
{
tbb::task_scheduler_init init; //多线程的初始化
ParallelPreorderTraversal(unBidPersonQueue);
}
Body stream ParallelPreorderTraversal,这个三个部分都是while实现的关键,body和stream是在parallel_while的框架里面只是一个虚函数,可以理解为parallel_while只是给我们提供了一个把循环转换成多线程执行的一个框架,但是具体里面的实现,就得我们实现,重载一下;这个地方就是他的精妙之处,呵呵:)
分享到:
相关推荐
2019 08 licese
TBB for Windows 官方下载 https://github.com/01org/tbb/releases,tbb2019年最新版 tbb2019_20190320oss_win.zip
tbb_debug.dll,opencv有时候会遇到这个问题,加入这个就可以
opencv用到的tbb 例子,还有各种动态链接库
具体使用见我的博客,关于OpenCASCADE建模环境的搭建。
opencv 需要的DLL
TBB,Thread Building Blocks,线程构建模块,是Intel公司开发的并行编程开发的工具。 OSCON 上,Intel 宣布,Threading Building Blocks,Intel 众多软件开发工具中的一个,open source了。协议是 GPLv2。 TBB 获得过...
解决OpenCV缺少tbb_debug.dll的问题。 将文件解压,把其bin文件夹里的所有文件复制到: E:\softwares\opencv\build\common\tbb 然后在用户环境变量path里添加: E:\softwares\opencv\build\common\tbb\ia32\vc10
tbb最新并行库,很牛B,支持VC12,13,14,15!!tbb最新并行库,很牛B,支持VC12,13,14,15!!tbb最新并行库,很牛B,支持VC12,13,14,15!!tbb最新并行库,很牛B,支持VC12,13,14,15!!
OpenCV安装之后的tbb_debug.dll文件
tbb22_20091101oss_src
opencv_2.4.9_vs2013_x64_cuda_7_5_mkl(tbb)_tbb_python,本人亲自编译WITHCUDA、WITH_OPENGL、WITHTBB等,debug和release版本
专治opencv没有tbb_debug.dll,vs2008,win64位系统,tbb_debug.dll win64位, opencv vs2008
并行计算,tbb44_20160316oss_src源码,编译可用,。。。。。
Intel Threading Building Blocks TBB41_20120718oss_win.zip
opencv 3.2需要
tbb2019_20190605oss_win;tbb最新并行库 Threading Building Blocks 2019 Update 8
网上关于Python安装Opencv总是出现DLL Load Filed问题的解决方法,本人亲测无法解决问题,于是探索了一种新的解决方法,先对所有现存方法以及本人方法进行汇总,希望对大家有所帮助: 网上现存的几种问题与解决方法...
TBB 并发容器 concurrent_queue concurrent_vector concurrent_hash_map TBB 并发容器 concurrent_queue concurrent_vector concurrent_hash_map TBB 并发容器 concurrent_queue concurrent_vector concurrent_hash_...
tbb2017年最新版64bit,分数怎么自动跳到了50分了呀,还需要手动改正过来。是为了给其他tbb资源一些机会么?那也挺好的,可以都积累一些分数,方便互相下载