主题
异步编程 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);
}