10.1 Arc

实现 Arc

译文 · 基于 The Rustonomicon

Arc

原文链接: https://doc.rust-lang.org/nomicon/arc-mutex/arc.html

  本节我们将实现 std::sync::Arc 的简化版。与此前实现的 Vec类似,我们不会用到标准库那么多的优化、内建函数或不稳定代码。

  本实现大致基于标准库实现(技术上取自 1.49 的 alloc::sync,因为实际实现在那里),但暂时不支持弱引用(weak reference),因为它们会让实现稍复杂。

  请注意,本节目前仍在大量编写中。


10.1.1 布局

Arc 的布局

10.1.2 基础代码

Arc 的基础实现

10.1.3 克隆

Arc 的 Clone

10.1.4 丢弃

Arc 的 Drop

10.1.5 最终代码

完整的 Arc 实现

最后修改 August 11, 2026: 更新 (70a5af133)