【笔记】Rust的异步

前言

Rust通过异步实现多线程

通过多线程执行函数

1
2
3
4
5
6
7
8
9
10
11
12
fn 函数名() {
...
}

fn main() {
let 多线程变量名1 = spawn(函数名);
let 多线程变量名2 = spawn(函数名);

// 等待子线程执行结束再退出程序
多线程变量名1.join().unwrap();
多线程变量名2.join().unwrap();
}

通过第三方包实现

引入依赖

/Cargo.toml
1
2
[dependencies]
async-std = { version = "1.12.0", features = ["attributes"] }

多线程

1
2
3
4
5
6
7
8
9
10
11
12
13
async fn 函数名() {
...
sleep(Duration::from_millis(500)).await;
}

#[async_std::main]
async fn main() {
let 多线程变量名 = spawn(函数名());

// 等待子线程执行结束再退出程序
多线程变量名.await;
函数名().await;
}

完成

参考文献

哔哩哔哩——面向加薪学习