【Tokio】等待所有任务完成

环境

  • Time 2022-01-14
  • Rust 1.58.0
  • Tokio 1.15.0

概念

参考:https://docs.rs/tokio/latest/tokio/macro.join.html

示例

main.rs

use std::time::Duration;

use tokio::time::{sleep, Instant};

async fn time_sleep(time: u64) -> u64 {
    sleep(Duration::from_secs(time)).await;
    time
}

#[tokio::main]
async fn main() {
    let now = Instant::now();
    let (first, second) = tokio::join!(time_sleep(1), time_sleep(2));
    let time = now.elapsed().as_millis();
    println!("elapsed: {time} ms, first: {first}, second: {second}");
}

输出

等待最久的任务完成后才结束。

elapsed: 2001 ms, first: 1, second: 2

总结

join! 宏可以等待所有任务完成。

附录

posted @   jiangbo4444  阅读(458)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示