面试题答案
一键面试-
基本步骤:
- 创建通道:使用
mpsc::channel()
函数创建一个通道,它返回一个发送端(Sender
)和一个接收端(Receiver
)。 - 线程间传递:将发送端和接收端分别传递给不同的线程。
- 发送消息:在拥有发送端的线程中,使用
send
方法发送消息。 - 接收消息:在拥有接收端的线程中,使用
recv
方法接收消息。
- 创建通道:使用
-
代码示例:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (tx, rx) = mpsc::channel();
// 生成发送线程
let sender = thread::spawn(move || {
for i in 0..5 {
tx.send(i).unwrap();
}
});
// 生成接收线程
let receiver = thread::spawn(move || {
for _ in 0..5 {
let num = rx.recv().unwrap();
println!("Received: {}", num);
}
});
// 等待线程结束
sender.join().unwrap();
receiver.join().unwrap();
}