#atomic #pointers #safe #data #ownership #structures #box

无 std atomicbox

安全的原子指针到装箱数据

4 个版本 (破坏性)

0.4.0 2021年11月30日
0.3.0 2019年11月18日
0.2.0 2019年2月8日
0.1.0 2019年2月8日

并发 中排名第 352

Download history 21/week @ 2024-03-11 21/week @ 2024-03-18 65/week @ 2024-03-25 46/week @ 2024-04-01 40/week @ 2024-04-08 83/week @ 2024-04-15 191/week @ 2024-04-22 161/week @ 2024-04-29 294/week @ 2024-05-06 266/week @ 2024-05-13 186/week @ 2024-05-20 161/week @ 2024-05-27 295/week @ 2024-06-03 162/week @ 2024-06-10 55/week @ 2024-06-17 58/week @ 2024-06-24

每月下载 632
用于 9 包(直接使用 3 个)

MIT/Apache

28KB
383

atomicbox

安全的原子框。

Documentation Build Status

此包提供了 AtomicBox<T>AtomicOptionBox<T> 类型:标准库的 AtomicPtr 的安全、拥有版本。

不幸的是,您可以对原子框执行的唯一操作是交换和存储:您不能直接使用盒子而不取得所有权。想象一下没有 DerefDerefMut 实现的 Box,你就会明白这个意思。尽管如此,这对于某些无锁数据结构来说已经足够了,所以这就是它的样子!

为什么没有 Deref

这不会是安全的。AtomicBox 的目的是其他线程可以获取装箱的值,获取它的所有权,甚至丢弃它,而无需获取锁。因此,没有安全的方式去借用这个值——除非你自己从 AtomicBox 中交换出来。

这基本上也是为什么您不能借用任何其他原子类型的内容的引用的原因。这会引发数据竞争。这里的不同之处在于那些内容恰好位于堆上。

许可证:MIT/Apache-2.0

无运行时依赖