当需要多重所有权时,可以使用 Rc
(引用计数,Reference Counting)。Rc
会跟踪引用的数量,即包裹在 Rc
内部的值的所有者数量。
每当克隆一个 Rc
时,其引用计数就会增加 1;每当一个克隆的 Rc
离开作用域时,引用计数就会减少 1。当 Rc
的引用计数变为零(意味着没有剩余的所有者)时,Rc
及其包含的值都会被丢弃。
克隆 Rc
从不执行深拷贝。克隆只是创建另一个指向被包裹值的指针,并增加计数。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
std::rc
和 std::sync::arc
。