教程 rust tutorial

异步编程 async/await

Rust 使用 async 和 await 关键字支持异步编程, 实现高效的非阻塞操作。

异步函数定义

使用 async fn 定义异步函数:

rust
async fn say_hello() {
    println!("Hello, async Rust!");
}

调用异步函数

异步函数返回 Future,需用 .await 执行:

rust
#[tokio::main]
async fn main() {
    say_hello().await;
}

使用异步运行时

Rust 标准库不直接支持异步运行时,需用外部库,如 tokio 或 async-std。

添加依赖(Cargo.toml):

toml
[dependencies]
tokio = { version = "1", features = ["full"] }

异步任务示例

rust
use tokio::time::{sleep, Duration};

async fn async_task(id: u8) {
    println!("任务 {} 开始", id);
    sleep(Duration::from_secs(1)).await;
    println!("任务 {} 结束", id);
}

#[tokio::main]
async fn main() {
    let task1 = async_task(1);
    let task2 = async_task(2);

    tokio::join!(task1, task2);
}

代码演示

Rust Playground
打开运行
use tokio::time::{sleep, Duration};

async fn async_task(id: u8) { println!("任务 {} 开始", id); sleep(Duration::from_secs(1)).await; println!("任务 {} 结束", id); }

#[tokio::main] async fn main() { let task1 = async_task(1); let task2 = async_task(2);

tokio::join!(task1, task2);

}