MST

星途 面试题库

面试题:Rust中使用通道进行线程间通信的基本步骤

请描述在Rust中,使用通道(channel)实现两个线程间简单通信的基本步骤,并且给出一个简单示例代码,展示如何发送和接收数据。
36.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 基本步骤

    • 创建通道:使用std::sync::mpsc::channel函数创建一个通道,该函数返回一个元组(Sender<T>, Receiver<T>),其中Sender<T>用于发送数据,Receiver<T>用于接收数据,T是要发送的数据类型。
    • 在发送线程中:获取Sender<T>实例,并使用其send方法发送数据。
    • 在接收线程中:获取Receiver<T>实例,并使用其recv方法接收数据,recv方法会阻塞线程,直到有数据可用。
  2. 示例代码

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