多线程及其性能刻画

使用多线程提高并行性 同步的代价 我们研究对一列整数 $0, …, n - 1$ 求和,我们将序列划分成 $t$ 个不相交的的区域,给 $t$ 个线程每个分配一个区域。将线程的和放入一个变量中,并且我们使用互斥锁来保护这个变量。 use std::{ sync::{Arc, Mutex}, thread, time::Instant, }; fn main() { let args = std::env::args().collect::<Vec<String>>(); if args.len() != 3 { panic!("Usage: {} <nthreads> <log_nelems>", args[0]); } let nthreads: usize = args[1].parse().unwrap(); let log_nelems: usize = args[2].parse().unwrap(); let nelems = 1_usize << log_nelems; let nelems_per_thread = nelems / nthreads; let gsum = Arc::new(Mutex::new(0)); let now = Instant::now(); let mut handlers = vec!...

February 27, 2022 · 2 min · fffzlfk

CodeForces 762

Codeforces Round #762 (Div. 3)

December 26, 2021 · 4 min · fffzlfk