面试题答案
一键面试-
通道创建基本步骤:
- 使用
mpsc::channel()
函数创建通道,该函数返回一个元组,包含发送端(Sender
)和接收端(Receiver
)。 - 可以将发送端传递给需要发送数据的线程,接收端传递给需要接收数据的线程。
- 发送端使用
send
方法发送数据,接收端使用recv
方法接收数据。
- 使用
-
代码示例:
use std::sync::mpsc;
use std::thread;
fn main() {
// 创建通道
let (tx, rx) = mpsc::channel();
// 克隆发送端,因为我们需要在新线程中使用它
let tx_clone = tx.clone();
let handle = thread::spawn(move || {
// 发送字符串消息
tx_clone.send("Hello from sender".to_string()).unwrap();
// 接收回复
let response = rx.recv().unwrap();
println!("Sender received: {}", response);
});
// 主线程接收消息
let received = rx.recv().unwrap();
println!("Receiver received: {}", received);
// 主线程发送回复
tx.send("Hello back from receiver".to_string()).unwrap();
handle.join().unwrap();
}