21 个版本
0.4.15 | 2024年2月21日 |
---|---|
0.4.10 | 2023年12月8日 |
0.4.9 | 2023年11月22日 |
0.4.5 | 2023年6月30日 |
0.1.3 | 2022年3月8日 |
#185 in 并发
每月下载 378 次
在 42 个 Crates (16 直接使用) 中使用
170KB
2.5K SLoC
封装了与共享相关的数据结构,可通过编译条件指定是单线程共享还是多线程共享。
例如,Share 类型,通过控制编译条件,可转换为 Arc 或 Xrc
lib.rs
:
默认 不带 任何 feature
1. 几个类型封装
Share
=Xrc
|Arc
ShareWeak
=xrc::Weak
|sync::Weak
ShareMutex
=LockCell(RefCell<T>)
| MutexShareRwLock
=LockCell(RefCell<T>)
|RwLock
ShareCell
=cell::TrustCell
SharePtr
=SyncUnsafeCell<T>
|AtomicPtr<T>
ShareRefCell
=XrcCell<T>
|ArcCell<T>
ShareBool
=SyncUnsafeCell<bool>
|AtomicBool
ShareU8
=SyncUnsafeCell<u8>
|AtomicU8
ShareU32
=SyncUnsafeCell<u32>
|AtomicU32
ShareUsize
=SyncUnsafeCell<usize>
|AtomicUsize
2. 提供Send, Sync的封装
目的:wasm不支持Send + Sync
- ThreadSend = Send
- ThreadSync = Sync + Send