写需要加锁,读不需要加锁,写的时候加锁,将旧数据copy到新的地方,旧数据依然可读,写完一键替换(volatile)然后释放锁。
很好的博文,但是仅仅就读写而言,不认同CopyOnWriteArrayArrayList有数据一致性问题,他只是写比较耗时而已
CopyOnWriteArrayArrayList的最终一致性体现在迭代器拿着快照迭代的时候,这时候有线程修改了这个list,那么迭代时对最新的数据是看不到的
这篇文章的第三部分有详细介绍
写需要加锁,读不需要加锁,写的时候加锁,将旧数据copy到新的地方,旧数据依然可读,写完一键替换(volatile)然后释放锁。
很好的博文,但是仅仅就读写而言,不认同CopyOnWriteArrayArrayList有数据一致性问题,他只是写比较耗时而已
CopyOnWriteArrayArrayList的最终一致性体现在迭代器拿着快照迭代的时候,这时候有线程修改了这个list,那么迭代时对最新的数据是看不到的
这篇文章的第三部分有详细介绍