3 个版本 (破坏性)
0.4.0 | 2024 年 5 月 9 日 |
---|---|
0.3.0 | 2024 年 5 月 9 日 |
0.2.0 | 2024 年 5 月 8 日 |
0.1.0 |
|
#974 in 并发
每月 49 次下载
12KB
106 行
lazy_ref
实现一个用于懒加载初始化不可变引用的非阻塞同步原语。
用法
从不同的线程写入 LazyRef
use rayon::prelude::*;
use lazy_ref::LazyRef;
let lazy_ref = LazyRef::new();
let thread_ids: Vec<usize> = vec![1, 2, 3];
thread_ids.par_iter()
.for_each(
|id| {
let r = lazy_ref.get_or_init(|| id);
assert!(thread_ids.contains(r));
}
);
let x = lazy_ref.get().unwrap();
assert!(thread_ids.contains(x));
依赖项
~115KB