2 个版本
0.1.2 | 2024 年 3 月 11 日 |
---|---|
0.1.1 | 2023 年 11 月 15 日 |
0.1.0 |
|
在 Rust 模式 中排名 1176
每月下载量 61
19KB
415 行
lazy_thread_local
按对象懒初始化的线程局部存储
此库提供了 ThreadLocal
类型,允许为每个线程使用对象的单独副本。这允许进行按对象线程局部存储,与 crate thread_local
不同,此 crate 提供懒初始化且不依赖于 std。
线程对象在线程退出时不会被销毁。相反,对象仅在包含它们的 ThreadLocal
被丢弃时才会被销毁。
此 crate 使用平台相关的方 法来创建线程局部键。在 Unix 上,使用 pthread local storage。在 Windows 上,使用 Fibers storage。在 wasm 上,它依赖于 std 来提供线程 id。
示例
ThreadLocal
的基本用法
use lazy_thread_local::ThreadLocal;
let mut tls: ThreadLocal<u32> = ThreadLocal::new(||5);
assert_eq!(tls.get(), &5);
*tls = 6;
assert_eq!(tls.get(), &6);
在常量上下文中初始化 ThreadLocal
use lazy_thread_local::ThreadLocal;
static TLS: ThreadLocal<u32> = ThreadLocal::const_new(5);
assert_eq!(TLS.get(), 5);
依赖关系
~185KB