面试题答案
一键面试-
基本步骤:
- 创建通道:使用
std::sync::mpsc::channel
函数创建一个通道,该函数返回一个元组(Sender<T>, Receiver<T>)
,其中Sender<T>
用于发送数据,Receiver<T>
用于接收数据,T
是要发送的数据类型。 - 在发送线程中:获取
Sender<T>
实例,并使用其send
方法发送数据。 - 在接收线程中:获取
Receiver<T>
实例,并使用其recv
方法接收数据,recv
方法会阻塞线程,直到有数据可用。
- 创建通道:使用
-
示例代码:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (sender, receiver) = mpsc::channel();
// 启动一个新线程发送数据
thread::spawn(move || {
let data = String::from("Hello, Receiver!");
sender.send(data).unwrap();
});
// 在主线程中接收数据
let received = receiver.recv().unwrap();
println!("Received: {}", received);
}