#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 330/week @ 2024-03-13 938/week @ 2024-03-20 303/week @ 2024-03-27 211/week @ 2024-04-03 527/week @ 2024-04-10 472/week @ 2024-04-17 574/week @ 2024-04-24 710/week @ 2024-05-01 256/week @ 2024-05-08 315/week @ 2024-05-15 262/week @ 2024-05-22 129/week @ 2024-05-29 118/week @ 2024-06-05 71/week @ 2024-06-12 56/week @ 2024-06-19 910/week @ 2024-06-26

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