#arc-swap #shared #wraps #thread #data #arc-t #atomic-ref

arc-atomic-ref

arc-atomic-ref 是一个小型库,它封装了 arc-swap 在 Arc 中,这样原子引用就可以在许多任务/线程之间广泛共享

1 个稳定版本

1.0.0 2023年2月24日

431内存管理

Download history 47/week @ 2024-03-05 40/week @ 2024-03-12 87/week @ 2024-03-19 90/week @ 2024-03-26 228/week @ 2024-04-02 71/week @ 2024-04-09 39/week @ 2024-04-16 56/week @ 2024-04-23 42/week @ 2024-04-30 26/week @ 2024-05-07 24/week @ 2024-05-14 23/week @ 2024-05-21 132/week @ 2024-05-28 252/week @ 2024-06-04 200/week @ 2024-06-11 293/week @ 2024-06-18

885 每月下载量

MIT 许可证

5KB

arc-atomic-ref

一个 AtomicRef 是一种智能指针类型,可以与许多不同的执行线程共享,同时可以原子地与新数据交换出来。这样,当你可以替换包含的数据而不是修改它时,它类似于无锁的 RwLockMutex

use arc_atomic_ref::AtomicRef;
use std::sync::Arc;
let ptr = AtomicRef::new(1);
// share ptr with many threads with `clone`
// change its contained value, requires a new `Arc`
ptr.swap(Arc::new(2));
// all threads should see the change, use `.load()` to get the value
assert_eq!(**ptr.load(), 2);

lib.rs:

arc-atomic-ref

一个 AtomicRef 是一种智能指针类型,可以与许多不同的执行线程共享,同时可以原子地与新数据交换出来。这样,当你可以替换包含的数据而不是修改它时,它类似于无锁的 RwLockMutex

use arc_atomic_ref::AtomicRef;
use std::sync::Arc;
let ptr = AtomicRef::new(1);
// share ptr with many threads with `clone`
// change its contained value, requires a new `Arc`
ptr.swap(Arc::new(2));
// all threads should see the change, use `.load()` to get the value
assert_eq!(**ptr.load(), 2);

依赖

~185KB