#async-version #wait-group #async #future

已下架 async-wg

RUST 的异步版本 WaitGroup

0.1.2 2020年2月18日
0.1.1 2020年2月8日
0.1.0 2020年2月6日

#18 in #wait-group

无许可证

8KB
109

async-wg

Rustc Version Actions Crate API

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