#counter #future #value #shared #task #await #target

async_counter

实现等待特定值的前景的计数器

4个版本

0.1.3 2024年5月17日
0.1.2 2024年5月15日
0.1.1 2024年5月15日
0.1.0 2024年4月18日

#609 in 异步

Download history 199/week @ 2024-05-10 247/week @ 2024-05-17 47/week @ 2024-05-24 78/week @ 2024-05-31 110/week @ 2024-06-07 105/week @ 2024-06-14 148/week @ 2024-06-21 109/week @ 2024-06-28 101/week @ 2024-07-05 24/week @ 2024-07-12 132/week @ 2024-07-19 144/week @ 2024-07-26 49/week @ 2024-08-02 127/week @ 2024-08-09 48/week @ 2024-08-16

每月404次下载

MIT/Apache

8KB
134

此crate提供了一种计数器,可以在不同任务之间共享,并且可以等待直到它达到指定的值。

考虑以下场景。几个异步任务正在递增/递减共享值。同时,另一个任务需要确保共享值至少达到特定的目标。以下代码演示了如何在简化场景中使用Counter。一个子任务递增共享值,而主任务等待它达到特定的目标。

let counter = Counter::to(10);
let mut count = counter.clone();

// Spawn a task to update the counter.
tokio::spawn(async move { 
    for i in 0u8..20 {
        // Simulate some processing
        time::sleep(Duration::from_secs(1)).await;
        count = count + 5;
        // or
        // count += 5;
    } 
});

// Wait for the target to be satisfied.
counter.await; 

无运行时依赖