java 集合 CopyOnWriteArrayList
生活随笔
收集整理的這篇文章主要介紹了
java 集合 CopyOnWriteArrayList
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
CopyOnWriteArrayList 也是實(shí)現(xiàn)List接口
他是在concurrent 包里面,所以他是線程安全的,其他的基本和ArrayList很想。
他線程安全是用ReentrantLock 實(shí)現(xiàn)的,他內(nèi)部有一個(gè)ReentrantLock對象,然后在增刪改的時(shí)候都操作這個(gè)鎖對象,所以他在多線程里面是安全的、
之前還有1個(gè)Vector 他的增刪改也加了synchronized,但是這個(gè)只不過是方法鎖。他只能保證在多線程的時(shí)候,調(diào)用通一個(gè)方法有原子性,但是比如一個(gè)線程調(diào)用add,一個(gè)線程調(diào)用remove,這個(gè)就不安全了。
特性
1.add 方法,每次添加元素都復(fù)制一個(gè)新的數(shù)組出來,然后在復(fù)給成員變量array,
2.get 方法,獲取
他是在concurrent 包里面,所以他是線程安全的,其他的基本和ArrayList很想。
他線程安全是用ReentrantLock 實(shí)現(xiàn)的,他內(nèi)部有一個(gè)ReentrantLock對象,然后在增刪改的時(shí)候都操作這個(gè)鎖對象,所以他在多線程里面是安全的、
之前還有1個(gè)Vector 他的增刪改也加了synchronized,但是這個(gè)只不過是方法鎖。他只能保證在多線程的時(shí)候,調(diào)用通一個(gè)方法有原子性,但是比如一個(gè)線程調(diào)用add,一個(gè)線程調(diào)用remove,這個(gè)就不安全了。
特性
1.add 方法,每次添加元素都復(fù)制一個(gè)新的數(shù)組出來,然后在復(fù)給成員變量array,
2.get 方法,獲取
轉(zhuǎn)載于:https://www.cnblogs.com/tangwangming/p/8795587.html
總結(jié)
以上是生活随笔為你收集整理的java 集合 CopyOnWriteArrayList的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018建设银行转账手续费汇总(网银、手
- 下一篇: [T-ARA][그녀를 보면][看着那个