Appearance
第 30 章 管道
在上一章中,我们主要讲述了如何在多线程中共享变量。Rust 标准库中还提供了另外一种线程之间的通信方式:mpsc。这部分的库存储在 std::sync::mpsc 这个模块中。 mpsc 为多生产者单消费者(Multi-Producer, Single-Consumer)的缩写。代表的是 Multi-producer,single-consumer FIFO queue,即多生产者单消费者先进先出队列。这种线程之间的通信方式是在不同线程之间建立一个通信“管道”(channel),一边发送消息,一边接收消息,完成信息交流。
Do not communicate by sharing memory;instead,share memory by communicating.
——Effective Go
既然共享数据存在很多麻烦,那在某些场景下,用发消息的方式完成线程之间的通信是更合适的选择。