0.1.2 |
|
---|---|
0.1.1 |
|
0.1.0 |
|
#18 in #wait-group
8KB
109 行
async-wg
Async 版本的 RUST WaitGroup。
安装
安装 cargo add 后运行
$ cargo add -s async-wg
示例
#[tokio::main]
async fn main() {
use async_wg::WaitGroup;
// Create a new wait group.
let wg = WaitGroup::new();
for _ in 0..10 {
let wg = wg.clone();
// Add count n.
wg.add(1).await;
tokio::spawn(async move {
// Do some work.
// Done count 1.
wg.done().await;
});
}
// Wait for done count is equal to add count.
wg.await;
}
基准测试
在 github actions 上运行的简单基准测试比较。
代码: benchs/main.rs
test bench_join_handle ... bench: 34,485 ns/iter (+/- 18,969)
test bench_wait_group ... bench: 36,916 ns/iter (+/- 7,555)
许可证
无许可证。
依赖
~530–710KB
~14K SLoC