#channel #mpmc #mpsc #producer-consumer #async #thread #send-receive

loole

一个安全的多生产者、多消费者异步/同步通道

21 个版本

0.3.1 2024年5月28日
0.3.0 2024年1月3日
0.2.1 2023年12月15日
0.1.16 2023年12月11日
0.1.7 2023年10月20日

#237并发

Download history 312/week @ 2024-04-26 371/week @ 2024-05-03 251/week @ 2024-05-10 280/week @ 2024-05-17 364/week @ 2024-05-24 261/week @ 2024-05-31 235/week @ 2024-06-07 238/week @ 2024-06-14 158/week @ 2024-06-21 218/week @ 2024-06-28 126/week @ 2024-07-05 60/week @ 2024-07-12 47/week @ 2024-07-19 200/week @ 2024-07-26 87/week @ 2024-08-02 74/week @ 2024-08-09

每月417 次下载
用于 io-pipe

MIT/Apache

46KB
907

Loole

一个安全的多生产者、多消费者异步/同步通道。

Github Actions Documentation Cargo License

fn main() {
    let (tx, rx) = loole::unbounded();

    std::thread::spawn(move || {
        for i in 0..10 {
            tx.send(i).unwrap();
        }
    });

    let mut sum = 0;
    while let Ok(i) = rx.recv() {
        sum += i;
    }

    assert_eq!(sum, (0..10).sum());
}

生产者可以异步或同步地发送消息,消费者可以异步或同步地接收消息。

用法

要使用 Loole,请在您的 Cargo.toml 文件的 [dependencies] 部分下添加以下行

loole = "0.3.0"

运行基准测试

基准测试测量吞吐量,即每秒发送和接收的消息数,每条消息大小为 264 字节。

要在您的本地机器上运行基准测试,请运行以下命令

在执行此命令之前,请确保已安装 Node.js。

cargo run --release -p benchmark

上述命令将在 README.md 文件中生成和更新基准测试图像。

基准测试结果

基准测试结果

操作系统:Ubuntu Linux 23.10,内核:6.5.0-13

CPU:Intel Core i7-13700K (16/24核/线程)

MPSC

指标:每秒消息数。 (越高越好)

消息大小:264 字节。

MPSC: sync-sync MPSC: async-async MPSC: async-sync MPSC: sync-async

MPMC

指标:每秒消息数。 (越高越好)

消息大小:264 字节。

MPMC: sync-sync MPMC: async-async MPMC: async-sync MPMC: sync-async

SPSC

指标:每秒消息数。 (越高越好)

消息大小:264 字节。

SPSC: sync-sync SPSC: async-async SPSC: async-sync SPSC: sync-async

许可证

Loole 的许可证为以下之一

无运行时依赖项