Slide 12
Slide 12 text
3VTUͰฒྻԽ
use std::thread;
fn calc(begin: i32, end: i32) -> f32{
let mut sum = 0.0;
for i in begin..end{
sum += if i % 2 == 0 {1.0} else {-1.0} / (2.0 * i as f32 + 1.0);
}
sum * 4.0
}
const N_THREAD: i32 = 10;
fn main() {
let mut children = vec![];
let base = 100000000 / N_THREAD;
for i in 0..N_THREAD{
children.push(thread::spawn(move || {
calc(i*base, (i+1)*base)
}));
}
let mut sum = 0.0;
for c in children{
let ret = c.join().unwrap();
sum += ret;
}
println!("{}", sum);
}