所以我今天才开始学习TBB。我在Ubuntu系统上工作,所以使用sudo apt
安装了TBBsudo apt-get install libtbb-dev
现在我试着编译并运行HELLO_TBB
#include <iostream>
#include <tbb/tbb.h>
int main() {
tbb::parallel_invoke(
[]() { std::cout << " Hello " << std::endl; },
[]() { std::cout << " TBB! " << std::endl; }
);
return 0;
}
,当试图编译它时,我得到下一个注释:
$ g++ Hello_TBB.cpp -o test -ltbb
In file included from Hello_TBB.cpp:2:
/usr/local/include/tbb/tbb.h:21:154: note: #pragma message: TBB Warning: tbb.h contains deprecated functionality. For details, please see Deprecated Features appendix in the TBB reference manual.
21 | ee Deprecated Features appendix in the TBB reference manual.")
,当运行代码时,它实际上只打印Hello TBB一次!是这样的吗?还是我错过了什么?那张纸条是怎么回事?
关于输出:
tbb::parallel_invoke
是a:
并行计算多个函数的函数模板。
正如您在链接中看到的,您可以传递几个函数,并且tbb框架将尝试并行运行它们(每个函数在一个单独的线程中)。每个函数将执行一次。
请注意,并行度的级别并不能得到保证,它取决于您的系统属性和硬件。
在你的例子中,你传递了两个函数。打印"你好,而另一个";TBB !"。它们可能并行运行,但每个将运行一次。所以总的来说,它们将打印这两个字符串一次。
关于注释:
我对它不是特别熟悉。一般来说,弃用的函数是那些不鼓励使用的函数,因为它们可能会在未来的版本中被删除。我不认为tbb::parallel_invoke
是这种情况,但你可以在上面的文档链接中验证。