rust中Sender<i32>怎么初始化
时间: 2024-05-03 21:22:26 浏览: 160
要初始化`Sender<i32>`,需要使用`mpsc::channel()`函数来创建一个新的多生产者单消费者(MPSC)通道,并从该通道中获取一个发送器(Sender)。下面是一个示例代码:
```rust
use std::sync::mpsc;
fn main() {
let (tx, rx) = mpsc::channel::<i32>();
// 这里创建了一个Sender<i32>,并将其绑定到变量tx上
// 可以使用tx发送消息
tx.send(42).unwrap();
// 在另一个线程中使用rx接收消息
std::thread::spawn(move || {
let msg = rx.recv().unwrap();
println!("Received message: {}", msg);
}).join().unwrap();
}
```
在这个例子中,我们使用`mpsc::channel()`函数创建了一个新的通道,并将其返回值拆分为一个发送器(Sender)和一个接收器(Receiver)。在主线程中,我们使用发送器(Sender)`tx`发送了一个整数`42`。在另一个线程中,我们使用接收器(Receiver)`rx`接收了这个整数,并打印了一条消息。
请注意,在这个例子中,我们使用了`move`关键字来将发送器(Sender)和接收器(Receiver)移动到了另一个线程中。这是必须的,因为发送器(Sender)和接收器(Receiver)都是不可复制的类型,只能通过移动来传递。
阅读全文