每月 23 个稳定版本
2.3.1 | 2024 年 5 月 16 日 |
---|---|
2.2.1 | 2024 年 4 月 14 日 |
2.2.0 | 2024 年 2 月 8 日 |
2.1.1 | 2023 年 11 月 24 日 |
0.1.0 | 2019 年 5 月 6 日 |
在 并发 中排名第 8
每月下载量 4,349,026
用于 6,314 个 Crates(直接使用 430 个)
41KB
568 行(不包括注释)
async-channel
一个异步多生产者多消费者通道,其中每条消息只能由现有消费者中的某一个接收。
通道有两种类型
- 有固定容量的有界通道。
- 无固定容量的无界通道。
通道有 Sender
和 Receiver
两端。两端都是可复制的,可以在多个线程之间共享。
当所有 Sender
或所有 Receiver
都被丢弃时,通道变为关闭。当通道关闭时,不能再发送消息,但可以继续接收剩余的消息。
还可以通过调用 Sender::close()
或 Receiver::close()
手动关闭通道。
示例
let (s, r) = async_channel::unbounded();
assert_eq!(s.send("Hello").await, Ok(()));
assert_eq!(r.recv().await, Ok("Hello"));
许可证
根据您的选择,许可协议为以下之一
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中的贡献,将根据上述协议双重许可,无需任何额外的条款或条件。
依赖项
~400KB