4 multithreading iterator for-loop rust rayon
我可以迭代和处理索引和变量,例如:
let x = vec![5, 6, 7, 8];
for (index, val) in x.iter().enumerate() {
println!("{} {}", val, index);
}
Run Code Online (Sandbox Code Playgroud)
现在,据我所知,对于人造丝,并行迭代par_iter()不支持枚举,因为它具有ParallelIterator.
Rayon 似乎有IndexedParallelIterator,但我不确定如何使用它来产生与上面所示的简单 for 循环类似的结果。
并行迭代时是否有办法跟踪每个值的索引?简单的 for 循环会是什么样子?
当您通过调用ParallelIterator从 a创建 a 时,它同时也是 an ,因此您可以调用它来获取项目索引,如下所示:Vecpar_iter()IndexedParallelIteratorenumerate()
// rayon = "1.5"
use rayon::prelude::*;
fn main() {
let x = vec![5, 6, 7, 8];
x.par_iter().enumerate().for_each(|(index, val)| {
println!("{} {}", val, index);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2712 次 |
| 最近记录: |