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|ArcShareWeak=xrc::Weak|sync::WeakShareMutex=LockCell(RefCell<T>)| MutexShareRwLock=LockCell(RefCell<T>)|RwLockShareCell=cell::TrustCellSharePtr=SyncUnsafeCell<T>|AtomicPtr<T>ShareRefCell=XrcCell<T>|ArcCell<T>ShareBool=SyncUnsafeCell<bool>|AtomicBoolShareU8=SyncUnsafeCell<u8>|AtomicU8ShareU32=SyncUnsafeCell<u32>|AtomicU32ShareUsize=SyncUnsafeCell<usize>|AtomicUsize
2. 提供Send, Sync的封装
目的:wasm不支持Send + Sync
- ThreadSend = Send
- ThreadSync = Sync + Send