在 Rust 中,你可以使用線程(threads)或者異步任務(async tasks)來實現并發處理。這里我將為你展示如何使用這兩種方法來實現并發處理。
要使用線程,你需要引入 std::thread
模塊。然后,你可以創建一個新的線程并執行一個函數。這里有一個簡單的例子:
use std::thread;
fn main() {
let handle = thread::spawn(|| {
println!("Hello from a thread!");
});
handle.join().unwrap();
}
在這個例子中,我們創建了一個新的線程并執行了一個匿名函數。handle.join().unwrap()
會等待線程完成并獲取其返回值。
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 密集型任務,如網絡請求、文件讀寫等。你可以根據你的需求選擇合適的方法。