Rust 锈是如何处理的;“孤岛”;(引用周期)引用计数类型的场景?

Rust 锈是如何处理的;“孤岛”;(引用周期)引用计数类型的场景?,rust,reference-counting,Rust,Reference Counting,Rust如何处理Rcs和Arcs的“隔离岛”情况 “隔离岛”是指对象a包含指向对象B的指针,对象B包含指向对象a的指针,但在其他任何地方都没有指向这两个对象的指针 Rust是否足够聪明,可以检测到这一点,还是会导致内存泄漏?Rust没有垃圾收集器,也不会检测引用周期。如果您的程序创建了不可访问的引用周期,则这些引用周期将被泄漏,您可以通过使用或不使用共享所有权来避免这些引用周期 请注意,创建引用循环的唯一方法是使用共享所有权和内部可变性 另请参见。谁将引用周期称为“隔离岛”?似乎这不是简单的引用

Rust如何处理
Rc
s和
Arc
s的“隔离岛”情况

“隔离岛”是指对象
a
包含指向对象
B
的指针,对象
B
包含指向对象
a
的指针,但在其他任何地方都没有指向这两个对象的指针


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

Rust没有垃圾收集器,也不会检测引用周期。如果您的程序创建了不可访问的引用周期,则这些引用周期将被泄漏,您可以通过使用或不使用共享所有权来避免这些引用周期

请注意,创建引用循环的唯一方法是使用共享所有权和内部可变性


另请参见。

谁将引用周期称为“隔离岛”?似乎这不是简单的引用周期,而是关于没有外部引用的引用周期-与程序的其余部分隔离。引用循环本身并不坏,当它丢失时就不好了。顺便说一句,这不是一个纯粹的修辞问题——我真的很想知道“孤岛”这个词从何而来(或者如果你只是虚构的)@trentcl它似乎是一个常用的术语。例如,检查以下问题: