本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。