1
0
Fork 0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-05-19 03:26:09 +02:00
rustlings/exercises/standard_library_types/arc1.rs

33 lines
952 B
Rust
Raw Normal View History

2018-02-22 07:09:53 +01:00
// 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 :)
2015-09-28 15:43:11 +02:00
// I AM NOT DONE
#![forbid(unused_imports)] // Do not change this, (or the next) line.
2015-09-28 15:43:11 +02:00
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 || {
2015-09-28 15:43:11 +02:00
let mut i = offset;
let mut sum = 0;
while i < child_numbers.len() {
2015-09-28 15:43:11 +02:00
sum += child_numbers[i];
i += 5;
}
println!("Sum of offset {} is {}", offset, sum);
}));
}
for handle in joinhandles.into_iter() {
handle.join().unwrap();
}
}