11 个版本
0.2.2 | 2024 年 6 月 25 日 |
---|---|
0.2.1 | 2024 年 6 月 21 日 |
0.1.9 | 2024 年 6 月 21 日 |
#309 在 并发
每月 59 次下载
12KB
135 行
Rcu128
Rcu128 是一个 Rust 库,提供对值的并发数据结构进行读取-复制-更新 (RCU) 风格访问。它允许多个读取器并发访问值,同时通过在所有当前读取器完成读取旧值之前阻止值的发布来确保安全的更新。
限制
仅在支持 u128 原子加载和存储的平台上有可用。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
rcu_128 = { git = "https://github.com/cyborg42/rcu_128.git" }
示例
use rcu_128::RcuCell;
fn main() {
let rcu_cell = RcuCell::new(42);
// Read the value
{
let guard = rcu_cell.read();
assert_eq!(*guard, 42);
}
// Write a new value
rcu_cell.write(100);
// Upate with a function
rcu_cell.update(|value| value + 1);
// Read the updated value
{
let guard = rcu_cell.read();
assert_eq!(*guard, 101);
}
}
许可证
本项目采用 MIT 许可证。有关详细信息,请参阅 许可证文件。
依赖项
~0.4–5.5MB
~11K SLoC