一.TBB组成
TBB里的内容大致可以分为以下几类:
- 通用并行算法
o 这是TBB里最主要的一大部分,比如示例里的parallel_for就是这部分的一个算法
o TBB提供了parallel_for,parallel_while,parallel_reduce等算法,应用于不同的并行算法场景
- 并发容器
o 这是对常见容器的线程安全版本的实现,同时考虑到performance的要求,提供了细粒度的锁机制,TBB2.0里提供的容器包括hash map,vector,queue。
- 任务调度器
o 提供了task机制的封装
- 同步原语
o 提供了原子操作、mutex、lock等同步原语的封装
- 内存分配
o 提供了对cache机制更友好的支持
它们之间的关系如下图:
二.TBB示例
在Vs2008里新建一个项目,输入如下代码,编译运行。
#include "stdafx.h"
#include "tbb/task_scheduler_init.h"
#include "tbb/blocked_range.h"
#include "t