我正在閱讀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