Rust 程序设计语言 简体中文版 1.85.0你可以将编程中的信道想象为一个水流的渠道,比如河流或小溪。如果你将诸如橡皮鸭之类的 东西放入其中,它们会顺流而下到达下游。 信道有两个组成部分:一个发送端(transmitter)和一个接收端(receiver)。发送端位于上 游位置,在这里可以将橡皮鸭放入河中,接收端则位于下游,橡皮鸭最终会漂流至此。代码中 的一部分调用发送端的方法以及希望发送的数据,另一部分则检查接收端收到的消息。当发送 端或接 mpsc::channel 函数返回一个元组:第一个元素是发送侧 – 发送端,而第二个元素是接收侧 – 接收端。由于历史原因,tx 和 rx 通常作为发送端(transmitter)和 接收端(receiver)的传 统缩写,所以这就是我们将用来绑定这两端变量的名字。这里使用了一个 let 语句和模式来解 构了此元组;第十九章会讨论 let 语句中的模式和解构。现在只需知道使用 let 语句是一个 方便提取 可以发送端向接收端发送消息了。注意我们无需产生一个独立的线程或者任务;只需等待 (await) rx.recv 调用。 std::mpsc::channel 中的同步 Receiver::recv 方法阻塞执行直到它接收一个消息。 trpl::Receiver::recv 则不会阻塞,因为它是异步的。不同于阻塞,它将控制权交还给运行 时,直到接收到一个消息或者信道的发送端关闭。相比之下,我们不用 await send,因为它不0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













