MST

星途 面试题库

面试题:Rust中如何使用通道实现简单的并发通信

请描述在Rust中,使用标准库中的通道(`std::sync::mpsc`)实现两个线程之间简单消息传递的基本步骤,并给出一个简单的代码示例。示例中,一个线程发送数字序列,另一个线程接收并打印这些数字。
19.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 基本步骤

    • 创建通道:使用mpsc::channel()函数创建一个通道,它返回一个发送端(Sender)和一个接收端(Receiver)。
    • 线程间传递:将发送端和接收端分别传递给不同的线程。
    • 发送消息:在拥有发送端的线程中,使用send方法发送消息。
    • 接收消息:在拥有接收端的线程中,使用recv方法接收消息。
  2. 代码示例

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();
}