MST

星途 面试题库

面试题:Rust中如何通过消息传递实现简单的并发任务

请描述在Rust中使用`std::sync::mpsc`模块实现两个线程之间简单消息传递的基本步骤,并编写一个示例代码,主线程发送一系列数字给子线程,子线程接收并打印这些数字。
43.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 基本步骤

    • 创建通道:使用mpsc::channel()函数创建一个通道,该函数返回一个元组,包含发送端(Sender)和接收端(Receiver)。
    • 传递接收端:将接收端传递给子线程,以便子线程能够接收消息。
    • 发送消息:在主线程中,使用发送端的send方法发送消息。
    • 接收消息:在子线程中,使用接收端的recv方法接收消息。
  2. 示例代码

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