面试题答案
一键面试-
基本步骤:
- 创建通道:使用
mpsc::channel()
函数创建一个通道,该函数返回一个元组,包含发送端(Sender
)和接收端(Receiver
)。 - 传递接收端:将接收端传递给子线程,以便子线程能够接收消息。
- 发送消息:在主线程中,使用发送端的
send
方法发送消息。 - 接收消息:在子线程中,使用接收端的
recv
方法接收消息。
- 创建通道:使用
-
示例代码:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (sender, receiver) = mpsc::channel();
// 生成子线程并传递接收端
let handle = thread::spawn(move || {
for received in receiver {
println!("子线程接收到: {}", received);
}
});
// 主线程发送一系列数字
for num in 0..10 {
sender.send(num).unwrap();
}
// 等待子线程结束
handle.join().unwrap();
}