Rust如何处理引用计数类型的“隔离岛”(引用循环)方案?

时间:2018-12-28 17:15:46

标签: rust reference-counting

Rust如何处理RcArc的“孤立之岛”方案?

“孤立之岛”是这样的情况:对象A包含指向对象B的指针,而对象B包含指向对象A的指针,但是存在没有指向其他任何对象的指针。

Rust是否足够聪明以检测到这一点,否则会导致内存泄漏?

1 个答案:

答案 0 :(得分:8)

Rust没有垃圾收集器,并且不会检测参考周期。如果您的程序创建了无法访问的参考周期,则它们会被泄漏,您有责任避免它们,例如通过使用weak references或首先不使用共享所有权。

请注意,创建参考周期的唯一方法是同时使用共享所有权和内部可变性。

另请参阅chapter on reference cycles in the Rust book