引用计数:比听起来更难

主要观点:朴素引用计数在不共享对象的系统中容易实现,但在共享对象的系统中存在问题。介绍了多个与引用计数相关的问题及解决方案。
关键信息:

  • 共享对象时的两个问题:存储到堆需要 XCHG 操作,竞争增量和减量。
  • 已知解决方案:同步收集器和变异器、危险指针、传递责任、ThreadScan 等,但都有一定难度和微妙之处。
  • 危险指针的微妙之处:节点状态可能变化导致释放可从堆访问的对象。
    重要细节:
  • 单线程应用中存储到堆的实现方式。
  • 多线程系统中扩展存储到堆的 XCHG 操作及开销。
  • 竞争增量和减量的代码示例及可能出现的崩溃情况。
  • 各解决方案的相关文献引用及简要介绍。
阅读 4
0 条评论