面试题答案
一键面试-
基本步骤:
- 创建通道:使用
std::sync::mpsc::channel
函数创建一个通道,它会返回一个发送端(Sender
)和一个接收端(Receiver
)。 - 传递发送端:将发送端传递到需要发送数据的线程中。
- 发送数据:在拥有发送端的线程中,使用发送端的
send
方法来发送数据。 - 接收数据:在拥有接收端的线程中,使用接收端的
recv
或try_recv
方法来接收数据。recv
是阻塞式接收,try_recv
是非阻塞式接收。
- 创建通道:使用
-
示例代码:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (sender, receiver) = mpsc::channel();
// 新建一个线程,并将发送端传递进去
let sender2 = sender.clone();
thread::spawn(move || {
let data = String::from("Hello, channel!");
// 发送数据
sender2.send(data).unwrap();
});
// 在主线程中接收数据
let received = receiver.recv().unwrap();
println!("Received: {}", received);
}