[−][src]Struct crossbeam_utils::sync::WaitGroup
Enables threads to synchronize the beginning or end of some computation.
Wait groups vs barriers
WaitGroup
is very similar to Barrier
, but there are a few differences:
-
Barrier
needs to know the number of threads at construction, whileWaitGroup
is cloned to register more threads. -
A
Barrier
can be reused even after all threads have synchronized, while aWaitGroup
synchronizes threads only once. -
All threads wait for others to reach the
Barrier
. WithWaitGroup
, each thread can choose to either wait for other threads or to continue without blocking.
Examples
use crossbeam_utils::sync::WaitGroup; use std::thread; // Create a new wait group. let wg = WaitGroup::new(); for _ in 0..4 { // Create another reference to the wait group. let wg = wg.clone(); thread::spawn(move || { // Do some work. // Drop the reference to the wait group. drop(wg); }); } // Block until all threads have finished their work. wg.wait();
Methods
impl WaitGroup
[src][−]
Trait Implementations
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src][+]
impl<T, U> Into for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T> Borrow for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,