Rust如何处理Rc
和Arc
的“孤立之岛”方案?
“孤立之岛”是这样的情况:对象A
包含指向对象B
的指针,而对象B
包含指向对象A
的指针,但是存在没有指向其他任何对象的指针。
Rust是否足够聪明以检测到这一点,否则会导致内存泄漏?
答案 0 :(得分:8)
Rust没有垃圾收集器,并且不会检测参考周期。如果您的程序创建了无法访问的参考周期,则它们会被泄漏,您有责任避免它们,例如通过使用weak references或首先不使用共享所有权。
请注意,创建参考周期的唯一方法是同时使用共享所有权和内部可变性。