我已经阅读this great answer from @jon-harrop in Quora问题引用计数和垃圾收集如何比较?在那里,据说引用计数的一个缺点是多线程引用计数是非确定性的,因为增量和减量竞争。
然后他继续解释一些系统如何解决或解决大多数这些缺点,给出了具体的例子;除了这个缺点之外。
所以我想知道:GLib / GObject的引用计数有没有办法克服这个问题?
答案 0 :(得分:2)
它使用Atomic Operations支持int GLib。在支持原子操作的处理器/编译器上,它使用它(即,Atomic Builtins用于GCC,InterlockedCompareExchange用于Windows,等等,并且它依赖于互斥锁。