文章预览
Rust 1.80.0 稳定版现已发布,主要带来以下变化: LazyCell 和 LazyLock 新的 “lazy” 类型将值的初始化延迟到首次访问,它们类似于 1.70 中稳定的 OnceCell 和 OnceLock 类型,但单元格中包含了初始化函数。 这完成了从流行的和板条箱中采用到标准库中的功能的稳定化。完成了从 lazy_static 和 once_cell crates 到标准库中所采用功能的稳定化。 LazyLock 是线程安全选项,适用于 static values 等地方。 use std::sync::LazyLock; use std::time::Instant; static LAZY_TIME: LazyLock = LazyLock::new(Instant::now); fn main () { let start = Instant::now(); std::thread::scope(|s| { s.spawn(|| { println! ( "Thread lazy time is {:?}" , LAZY_TIME.duration_since(start)); }); println! ( "Main lazy time is {:?}" , LAZY_TIME.duration_since(start)); }); } LazyCell 缺乏线程同步,因此没有实现 static 所需的 Sync,但仍
………………………………