parallel_for 函数

parallel_for 循环访问一个索引范围,并在每次迭代时以并行方式执行用户提供的函数。

template <
   typename _Index_type,
   typename _Function,
   typename _Partitioner
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   _Index_type_Step,
   const _Function& _Func,
   _Partitioner&& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   _Index_type_Step,
   const _Function& _Func
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const auto_partitioner& _Part = auto_partitioner()
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const static_partitioner& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const simple_partitioner& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   affinity_partitioner& _Part
);

参数

  • _Index_type
    用于迭代的索引类型。

  • _Function
    每次迭代时将执行的函数的类型。

  • _Partitioner
    可分区所提供的范围分区程序的类型。

  • _First
    要包含在迭代中的第一个索引。

  • _Last
    索引一超过了要包含在迭代中的最后一个索引。

  • _Step
    从 _First 至 _Last 迭代时的步长值。 此步长必须是正数。 如果该步骤小于 1,则会引发 invalid_argument

  • _Func
    要在每次迭代时执行的函数。 这可以是 lambda 表达式、函数指针或支持函数调用运算符某个版本的任意对象,具有签名 void operator()(_Index_type**)**。

  • _Part
    对对象分区的引用。 论点可能是 const&constsimple_partitionerauto_partitionerstatic_partitioner&const&affinity_partitioner**&**其中一个,如果使用对象,affinity_partitioner 引用必须是非 Const 左值引用,因此算法,可存储状态,将来循环可以重用。

备注

有关详细信息,请参阅并行算法

要求

**标头:**ppl.h

**命名空间:**并发

请参见

参考

concurrency 命名空间