TBB(Thread Building Blocks),线程构建模块,是由Intel公司开发的并行编程开发工具,提供了对Windows,Linux和OSX平台的支持。

TBB for Windows 官方下载链接: 点击打开链接

TBB的VS编译环境的配置步骤:

1.  在系统的用户变量和系统变量里加入TBB的dll路径:

右击我的电脑->属性->高级系统设置->环境变量,在用户变量和系统变量里的path变量(没有则新建一个)里分别加入TBB的dll所在路径。我解压出来的TBB文件路径是 “D:\Software\TBB” ,所以在path里加入路径 “D:\Software\TBB\tbb2017_20161128oss\bin\ia32\vc11”

2.  在VS工程里新建一个属性页,在属性页的VC++目录->可执行文件目录里添加路径:D:\Software\TBB\tbb2017_20161128oss\bin\ia32\vc11

3. 在属性页的VC++目录->包含目录里添加路径: D:\Software\TBB\tbb2017_20161128oss\include

4. 在属性页的VC++目录->库目录里添加路径:D:\Software\TBB\tbb2017_20161128oss\lib\ia32\vc11

经过以上4个步骤,TBB的配置就完成了,用一个简单的TBB并行程序验证一下是否配置成功:

#include <tbb/tbb.h>
#include <iostream> using namespace std;
using namespace tbb; int main()
{
parallel_for(0, 10, [](int num) {cout << num << ": Hello TBB!" << endl; });
getchar();
return 0;
}

如果按4个步骤正确配置了,应该有如下杂乱的输出,说明配置OK:

C++中lambda表达式

TBB程序中的parallel_for模板用到了lambda表达式,lambda表达式是C++11新增的特性,允许通过lambda表达式构造匿名函数。匿名函数适合于程序中一些可能只会被调用一次的小函数,把这些小函数重构为匿名函数可以使程序更加简洁优雅。

两个简单的lambda表达式的定义和使用示例:

#include <iostream>

using namespace std;

int main()
{
auto func1 = []() {cout << "Hello Lambda!" << endl; };
func1();
auto func2 = [](int num) {return num + 5; };
cout << func2(5) << endl;
getchar();
return 0;
}

这里定义了一个lambda表达式(函数)func1,auto用来自动获取func1函数的返回值。符号“[ ]”通知编译器接下来要定义的是一个匿名函数,符号“()”里定义传入匿名函数的参数列表,这里为空,在随后的大括号内是函数的具体实现。

最新文章

  1. Facebook 帆布接入的总结
  2. [POJ2404]Jogging Trails(中国旅行商问题)(一般图的匹配——状压DP)
  3. Linux常用服务部署与优化之NFS篇
  4. UVALive 7302 (最短路)
  5. 简单SQL分页
  6. android:layout_gravity和android:gravity的区别
  7. ORA-19693: 已包括备份片段
  8. [Hibernate] - Study 1
  9. java识别文件或字符串的编码格式
  10. javascript中的with
  11. where can I find source of com.android.internal.R.styleable.AlertDialog_multiChoiceItemLayout?
  12. hibernate 为什么持久化类时必须提供一个不带参数的默认构造函数
  13. Python 项目实践一(外星人入侵)第一篇
  14. NancyFX 第十章 身份验证
  15. laravel带参数分页
  16. (转)40个Java集合面试问题和答案
  17. 【JMeter】【性能测试】参数化,内存溢出问题
  18. day16 Hbase day17
  19. Can&#39;t find bundle for base name test.properties, locale zh_CN
  20. [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题

热门文章

  1. UVA 10917 Walk Through the Forest SPFA
  2. stm32的APB1和APB2时钟
  3. [Angular2Fire] Firebase auth (Google, Github)
  4. 编程算法 - 远征队(expedition) 代码(C)
  5. 【69.77%】【codeforces 723A】The New Year: Meeting Friends
  6. [乐意黎原创] eclipse Kepler Selected SVN connector library is not available or cannot be loaded
  7. Drupal 7 模块开发 建立模块帮助信息(hook_help)
  8. android studio怎么添加.so文件?android studio加载so文件的方法
  9. Java基本数据类型之间赋值与运算归纳
  10. css3-3 css3背景样式