2个不稳定版本
0.2.0 | 2022年10月20日 |
---|---|
0.1.0 | 2015年10月16日 |
#1063 在 并发
76KB
933 行
Atomic-Cell
一个用于无锁、线程安全、可变内存位置的crate。
lib.rs
:
此crate提供了一个称为 AtomicCell
的线程安全可变内存位置。
此类型与 Cell
相当,但它也可以在多个线程之间共享。
工作原理
当构建一个 AtomicCell
时,调用者选择一个适合他们希望存储的数据的 AtomicStorage
实现来使用。例如,可以使用 AtomicU8
来保存一个 #[repr(u8)]
枚举
在底层,所需类型被转换为存储的相应基本类型,并在存储上执行原子操作。
结果是用户几乎可以无缝地与 AtomicCell
交互,就像它与本地原子一样。
定义了两种实现:通用和宏。通用实现依赖于 AtomicStorage
特性,而宏实现依赖于裸函数。这使得宏实现能够在稳定的Rust中具有更多 const
函数。
依赖
~215KB