本文简要介绍rust语言中 Struct std::sync::Barrier
的用法。
用法
pub struct Barrier { /* fields omitted */ }
屏障使多个线程能够同步某些计算的开始。
例子
use std::sync::{Arc, Barrier};
use std::thread;
let mut handles = Vec::with_capacity(10);
let barrier = Arc::new(Barrier::new(10));
for _ in 0..10 {
let c = Arc::clone(&barrier);
// The same messages will be printed together.
// You will NOT see any interleaving.
handles.push(thread::spawn(move|| {
println!("before wait");
c.wait();
println!("after wait");
}));
}
// Wait for other threads to finish.
for handle in handles {
handle.join().unwrap();
}
相关用法
- Rust BarrierWaitResult用法及代码示例
- Rust Barrier.wait用法及代码示例
- Rust Barrier.new用法及代码示例
- Rust BarrierWaitResult.is_leader用法及代码示例
- Rust Box.downcast用法及代码示例
- Rust BTreeMap.last_key_value用法及代码示例
- Rust Bound.cloned用法及代码示例
- Rust BinaryHeap.capacity用法及代码示例
- Rust Builder.stack_size用法及代码示例
- Rust BTreeSet.insert用法及代码示例
- Rust BitXor用法及代码示例
- Rust Box.try_new_uninit_in用法及代码示例
- Rust BTreeSet.get用法及代码示例
- Rust BinaryHeap.push用法及代码示例
- Rust BitOrAssign用法及代码示例
- Rust BTreeSet.split_off用法及代码示例
- Rust BitXorAssign用法及代码示例
- Rust BTreeSet.is_disjoint用法及代码示例
- Rust Box.new_in用法及代码示例
- Rust BufRead.split用法及代码示例
- Rust Box.new_zeroed_in用法及代码示例
- Rust Box.try_new_zeroed_slice用法及代码示例
- Rust BTreeMap.get用法及代码示例
- Rust Box.try_new_in用法及代码示例
- Rust BTreeSet用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Struct std::sync::Barrier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。