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 异步
每月404次下载
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;