我正在阅读The thread building block book。我不明白这段代码:关于TBB/C++代码的问题
FibTask& a=*new(allocate_child()) FibTask(n-1,&x);
FibTask& b=*new(allocate_child()) FibTask(n-2,&y);
这些指令是什么意思?类对象引用和新工作在一起?感谢您的解释。
以下代码是该类FibTask的定义。
class FibTask: public task
{
public:
const long n;
long* const sum;
FibTask(long n_,long* sum_):n(n_),sum(sum_)
{}
task* execute()
{
if(n<CutOff)
{
*sum=SFib(n);
}
else
{
long x,y;
FibTask& a=*new(allocate_child()) FibTask(n-1,&x);
FibTask& b=*new(allocate_child()) FibTask(n-2,&y);
set_ref_count(3);
spawn(b);
spawn_and_wait_for_all(a);
*sum=x+y;
}
return 0;
}
};
只是挑剔......它被称为“线程构建模块” – Nav 2011-02-11 07:38:38