原子引用计数和自动引用计数之间的区别是什么?

时间:2016-10-09 12:01:23

标签: swift rust automatic-ref-counting

我认为ARC是一个时不时使用的首字母缩略词,但是例如在Rust中它的原子引用计数",在Swift或ObjC中它们称之为"自动引用计数&#34 ;.究竟有什么区别?据我所知,他们似乎表现得一样。

1 个答案:

答案 0 :(得分:4)

这实际上......完全不同。

在Rust方面,我们有ArcRc作为引用计数指针:

  • Rc是裸骨引用计数指针:克隆它只是增加一个计数器,当指向特定数据的最后一个Rc被删除时,计数器下降到0这条数据也被删除了。
  • Arc是它的原子版本,这意味着它是线程安全的,可以跨线程共享(与Rc不同)。

在Swift方面,ARC指的是自动引用计数,Swift的垃圾收集机制,顾名思义是自动的(在代码中不可见)。