CopyOnWrite读写并发机制与源码实现.pdfVIP

  • 0
  • 0
  • 约小于1千字
  • 约 1页
  • 2026-10-09 发布于北京
  • 举报

list.get,源码实现,写操作的源码,独占锁+写时

其实就是直接从底层数组里来数据,通过index定位对应位置的元素就可以了

假设此时我要add一个进去

写数据的时候一定要CopyOnWrite,如何解决读写并发的问题,写数据的时候,如何安全的

读数据,ConcurrentHashMap里面是直接操作一个数组的,对数组读写全部是走的volatile的

操作

CopyOnWriteArrayList设计思想,并不是基于CAS执行读写操作,写数据的时候,全部

一个副本,新的数组,对新的数组来修改,修改好了设置回去就可以了。读数据,只有两种

情况

第一种:到的老数组的数据

第二种:其他线程更新好了数组,volatile写,到的是新数组的数据

我不需要依赖任何一种加锁的机制来保证数据读写并发的安全性,我甚至都不需要依赖于

Unsafe.getObjectVolatile(),volatile读机制,来数组里的元素,我直接就是最最简单,最

最高效

最最高性能的,读就是直接读当前数组的数据即可,要么读的是老数据,要么读的是的

数据,都有可能

写数据更新的是好的另外一个副本数组,同一时间大量的线程读数据的时候,都是在读

老数组的数据,读写之间是没有任何的并发问题的,读和写之间是没有锁的的,写

文档评论(0)

1亿VIP精品文档

相关文档