mirror of https://github.com/rust-lang/rustlings
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
952 B
Rust
33 lines
952 B
Rust
// arc1.rs
|
|
// Make this code compile by filling in a value for `shared_numbers` where the
|
|
// TODO comment is and create an initial binding for `child_numbers`
|
|
// somewhere. Try not to create any copies of the `numbers` Vec!
|
|
// Execute `rustlings hint arc1` for hints :)
|
|
|
|
// I AM NOT DONE
|
|
|
|
#![forbid(unused_imports)] // Do not change this, (or the next) line.
|
|
use std::sync::Arc;
|
|
use std::thread;
|
|
|
|
fn main() {
|
|
let numbers: Vec<_> = (0..100u32).collect();
|
|
let shared_numbers = // TODO
|
|
let mut joinhandles = Vec::new();
|
|
|
|
for offset in 0..8 {
|
|
joinhandles.push(thread::spawn(move || {
|
|
let mut i = offset;
|
|
let mut sum = 0;
|
|
while i < child_numbers.len() {
|
|
sum += child_numbers[i];
|
|
i += 8;
|
|
}
|
|
println!("Sum of offset {} is {}", offset, sum);
|
|
}));
|
|
}
|
|
for handle in joinhandles.into_iter() {
|
|
handle.join().unwrap();
|
|
}
|
|
}
|