Самый простой способ сделать это, вероятно, не использовать par_iter
, а вместо этого дважды вызвать spawn
, возможно внутри scope
:
fn doit(v: &mut [i32]) {
for x in v.iter_mut() {
*x *= 2;
}
}
fn main() {
let mut data = vec![1, 2, 3, 4];
rayon::scope(|s| {
let mid = data.len() / 2;
let (a, b) = data.split_at_mut(mid);
s.spawn(move |_| doit(a));
s.spawn(move |_| doit(b));
});
}
Детская площадка