在 Rust 中,你可以使用线程(threads)或者异步任务(async tasks)来实现并发处理。这里我将为你展示如何使用这两种方法来实现并发处理。
- 使用线程(threads)
要使用线程,你需要引入 std::thread
模块。然后,你可以创建一个新的线程并执行一个函数。这里有一个简单的例子:
use std::thread; fn main() { let handle = thread::spawn(|| { println!("Hello from a thread!"); }); handle.join().unwrap(); }
在这个例子中,我们创建了一个新的线程并执行了一个匿名函数。handle.join().unwrap()
会等待线程完成并获取其返回值。
- 使用异步任务(async tasks)
Rust 的异步编程模型基于 async/await
语法。要使用异步任务,你需要引入 tokio
或其他异步运行时库。在这个例子中,我们将使用 tokio
库。
首先,在你的 Cargo.toml
文件中添加 tokio
依赖:
[dependencies] tokio = { version = "1", features = ["full"] }
然后,你可以使用 tokio::spawn
来创建一个异步任务:
use tokio::task; #[tokio::main] async fn main() { let handle = task::spawn(async { println!("Hello from an async task!"); }); handle.await.unwrap(); }
在这个例子中,我们使用 tokio::main
宏来启动一个异步运行时。然后,我们使用 task::spawn
创建一个异步任务并执行一个匿名函数。handle.await.unwrap()
会等待异步任务完成并获取其返回值。
这两种方法都可以实现并发处理,但它们适用于不同的场景。线程适用于 CPU 密集型任务,而异步任务适用于 I/O 密集型任务,如网络请求、文件读写等。你可以根据你的需求选择合适的方法。