本文介绍: CopyOnWriteArrayList 是 Java 中的一个线程安全的集合类。它实现了 List 接口,并且能够在高并发环境下提供一致的读写操作。本章节通过源码解读带你了解CopyOnWriteArrayList
CopyOnWriteArrayList源码解析
一、CopyOnWriteArrayList
在 JUC
中,对于 ArrayList
的线程安全用法,比较推崇于使用 CopyOnWriteArrayList
,那么CopyOnWriteArrayList
是怎么解决线程安全问题的呢,本文通过解析 CopyOnWriteArrayList
的源码,主要对几个常用的函数进行讲解。
在进行 CopyOnWriteArrayList
的源码讲解之前,先看下同样实现了线程安全的 Vector
,之所以不推荐使用 Vector
,主要是性能太差了,可以看下 Vector
的 add()
和 get()
的源码:
可以看到Vector
的添加和读取操作都被加上了 synchronized
锁,当并发情况下,因为锁的存在相当于变成了单线程的操作,所以效率肯定低,同样这样的优点就是保证了数据的唯一性,不会读取到脏数据。
下面再看下 CopyOnWriteArrayList
是如何解决并发问题的呢。
首先看下 CopyOnWriteArrayList
的全局变量有哪些:
二、总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。