use tokio::task;
use tokio::time::Duration;
#[tokio::main]
async fn main() {
// 使用tokio::spawn创建一个异步任务(协程)
let task1 = task::spawn(async {
for i in 1..=5 {
println!("Task 1: Count {}", i);
tokio::time::sleep(Duration::from_secs(1)).await;
}
});
// 创建一个新的线程
let thread1 = std::thread::spawn(|| {
for i in 1..=5 {
println!("Thread 1: Count {}", i);
std::thread::sleep(Duration::from_secs(1));
}
});
// 使用tokio::spawn创建另一个异步任务(协程)
let task2 = task::spawn(async {
for i in 1..=5 {
println!("Task 2: Count {}", i);
tokio::time::sleep(Duration::from_secs(1)).await;
}
});
// 等待协程和线程完成
task1.await.expect("Task 1 panicked");
thread1.join().expect("Thread 1 panicked");
task2.await.expect("Task 2 panicked");
println!("All tasks and threads are done!");
}
rust协程和线程一起用
最新推荐文章于 2024-07-21 17:40:43 发布