我有一个非常具体的场景:
最初的想法是避免(4)每次更新发生时都会创建一个新集合,一旦创建了编写器线程,就可以简单地更改给予读者的集合引用。隐含的假设是这将是一个原子操作,具有旧引用的读者将不受影响,并且新读者可以访问新的完整集合。
我在尝试时获得了部分更新的集合,因此我需要知道这种方法是否可以继续进行...
答案 0 :(得分:0)
自发布以来已经过了一段时间,但是IIRC我使用旧集合作为构造函数参数创建了一个新集合 - 即浅拷贝。
对这些元素进行适当的复制并使用这些元素实例化新容器,这样我就可以将数据项解耦,以确保不会发生“撕裂”。