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