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