#cow #thread-safety #data-structures #rwlock #runtime-efficiency

sync_cow

线程安全的写时复制容器,用于快速并发读写

2 个版本

0.1.1 2023年1月3日
0.1.0 2023年1月3日

#974并发

MIT 许可证

16KB
195

sync_cow

Crates.io Docs.rs CI Crates.io - License

GitHub open issues open pull requests

线程安全的写时复制容器,用于快速并发读写。

SyncCow 是一个用于数据并发读写的数据容器。它旨在成为 std::sync::RwLock 的更快的替代品。特别适合有大量并发读者的场景。读取保证是无锁的,并立即返回。写入只受其他写入访问的阻塞,而不会受任何读取访问的阻塞。只有一个写入者和其他任意读取者的 SyncCow 从不会阻塞。由于 SyncCow 存储其包含值的两个副本,并且读取值作为 std::sync::Arc 分发,使用 SyncCow 的程序可能比 std::sync::RwLock 有更高的内存占用。

请注意,当使用 SyncCow 时,读者可能会读取过时的数据,因为并发读写是可能的。如果这不可取,请考虑使用 std::sync::RwLock

安装

请使用 cargo-edit 来始终添加此库的最新版本

cargo add sync_cow

示例

请参阅以下示例

  • 简单读写 - SyncCow 函数的简单展示
  • 线程读写 - 使用 std::sync::Arc 在线程之间共享 SyncCow 以实现并发访问

许可证

许可协议

贡献

除非您明确声明,否则您提交的任何有意包含在本作品中的贡献均应按上述方式许可,不附加任何额外条款或条件。

变更日志

版本控制

sync_cow 严格遵循 语义版本控制 2.0.0

这包括上面指定的 Rust 版本要求。
早期 Rust 版本可能兼容,但可能会随着小版本或补丁版本的发布而改变。

受功能和补丁影响的版本可以从 CHANGELOG.md 中的相应标题确定。


mooo

无运行时依赖