#lock-free #thread-safe #threading #shared-data

pinboard

一种无锁、线程安全的发布数据的方式,只需将其贴在公告板上

10 个稳定版本

2.2.0 2023年4月17日
2.1.0 2020年11月1日
2.0.1 2019年1月3日
2.0.0 2017年12月17日
0.10.0 2017年6月5日

#382并发 类别中

Download history • Rust 包仓库 330/week @ 2024-03-13 • Rust 包仓库 938/week @ 2024-03-20 • Rust 包仓库 303/week @ 2024-03-27 • Rust 包仓库 211/week @ 2024-04-03 • Rust 包仓库 527/week @ 2024-04-10 • Rust 包仓库 472/week @ 2024-04-17 • Rust 包仓库 574/week @ 2024-04-24 • Rust 包仓库 710/week @ 2024-05-01 • Rust 包仓库 256/week @ 2024-05-08 • Rust 包仓库 315/week @ 2024-05-15 • Rust 包仓库 262/week @ 2024-05-22 • Rust 包仓库 129/week @ 2024-05-29 • Rust 包仓库 118/week @ 2024-06-05 • Rust 包仓库 71/week @ 2024-06-12 • Rust 包仓库 56/week @ 2024-06-19 • Rust 包仓库 910/week @ 2024-06-26 • Rust 包仓库

1,212 每月下载量
3 个 Crates 中使用 (2 个直接使用)

MIT 许可证

12KB
240

Pinboard

Crates.io - Pinboard Build Status License: MIT

共享数据的一个最终一致、无锁、可变存储。

只需将它贴在公告板上!

文档

https://docs.rs/pinboard/

用法

通过将 pinboard 添加到您的 Cargo.toml 文件中,从 crates.io 安装

[dependencies]
pinboard = "2.0.0"

现在您可以创建一个 Pinboard,在您的用户之间共享它(无论是 Futures、线程还是其他任何东西),并开始共享数据!

use pinboard::NonEmptyPinboard;
use std::{thread, time::Duration};

let weather_report = NonEmptyPinboard::new("Sunny");

crossbeam::scope(|scope| {
  scope.spawn(|_| {
    thread::sleep(Duration::from_secs(10));
    weather_report.set("Raining");
  });
  scope.spawn(|_| {
    loop {
      println!("The weather is {}", weather_report.get_ref());
      thread::sleep(Duration::from_secs(1));
    }
  });
});

依赖关系

~255KB