18 个版本
0.6.0 | 2023 年 7 月 29 日 |
---|---|
0.5.1 | 2021 年 11 月 10 日 |
0.5.0 | 2020 年 8 月 6 日 |
0.4.6 | 2020 年 7 月 5 日 |
0.3.0 | 2016 年 3 月 30 日 |
#168 in 并发
906,888 每月下载量
用于 1,466 个 Crates(83 个直接使用)
46KB
952 行
Rust 的泛型 Atomic<T>
这是一个为所有 T: NoUninit
类型提供泛型 Atomic<T>
类型的 Rust 库,与标准库不同,标准库只提供一些固定的原子类型(AtomicBool
、AtomicIsize
、AtomicUsize
、AtomicPtr
)。NoUninit
约束来自 bytemuck 包,表示类型没有内部填充字节。您需要为与 Atomic<T>
一起使用的所有类型推导或实现此特性。
如果可能,此库将使用本地原子指令,否则将回退到基于锁的机制。您可以使用 Atomic::<T>::is_lock_free()
函数来检查对于给定的类型是否支持本地原子操作。请注意,类型必须具有 2 的幂次大小和对齐,才能使用本地原子指令。
此包使用 #![no_std]
并且只依赖于 libcore。
用法
将此添加到您的 Cargo.toml
[dependencies]
atomic = "0.6"
并将此添加到您的 crate 根目录
extern crate atomic;
许可证
许可协议为以下之一
- Apache 许可证版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外的条款或条件。
依赖项
约135KB