rust-waitgroup is a lightweight synchronization primitive for managing concurrency in Rust programs, inspired by the waitgroup from Go.
- Synchronization: Efficiently waits for a collection of threads (or tasks) to complete before proceeding.
- Lightweight: Minimal overhead with simple API for adding tasks and waiting on their completion.
- Thread Safety: Ensures thread safety for synchronization across multiple threads.
use rust_waitgroup::WaitGroup;
use std::thread;
let wg = WaitGroup::default();
let n = 10;
for _ in 0..n {
let wg = wg.clone();
wg.add(1);
thread::spawn(move || {
// do some work
wg.done();
});
}
wg.wait();
rust-waitgroup
source code is available under the GPL License.