并行使用TBB库

parallel for using tbb library

本文关键字:TBB 并行      更新时间:2023-10-16

如果您有一个类和一个并行方法,如

    class A
    {
       void operator()(blocked_range<size_t>& r)
    const
   {
           double value = 0;
           for (size_t i = r.begin(); i != r.end(); ++i)
           {
               value = value + i;
           }
        std::cout << value;
       }
    }

并运行,那么该值也将随着循环打印1000次。如何才能只并行运行循环并将结果用于随后的其他函数或其他并行循环?因为我需要在其他函数中使用value,但不希望看到它被打印1000。

谢谢

如何在某处创建一个变量并通过引用将其传递给您的函数,如:

class A {
    void operator()( blocked_range<size_t>& r, double& answer ) {
        double value = 0;
        for (size_t i = r.begin(); i != r.end(); ++i) {
            value = value + i;
        }
        answer = value;
    }
}