- 基本步骤:
- 创建通道:使用
std::sync::mpsc::channel()
函数创建一个通道,它返回一个元组,包含发送端(Sender
)和接收端(Receiver
)。
- 线程间传递通道部分:将发送端或接收端传递到不同的线程中,这通常通过
std::thread::spawn
闭包捕获来实现。
- 发送数据:在持有发送端的线程中,使用发送端的
send
方法发送数据。
- 接收数据:在持有接收端的线程中,使用接收端的
recv
方法接收数据(该方法会阻塞直到有数据可用)。
- 示例代码:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (tx, rx) = mpsc::channel();
// 新建线程并传递接收端
let handle = thread::spawn(move || {
// 接收数据
let received = rx.recv().unwrap();
println!("Received: {}", received);
});
// 主线程发送数据
tx.send("Hello from main thread").unwrap();
// 等待线程结束
handle.join().unwrap();
}