java中CopyOnWriteArrayList的作用是什么?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)吉安,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
Java主要應(yīng)用于:1. web開(kāi)發(fā);2. Android開(kāi)發(fā);3. 客戶端開(kāi)發(fā);4. 網(wǎng)頁(yè)開(kāi)發(fā);5. 企業(yè)級(jí)應(yīng)用開(kāi)發(fā);6. Java大數(shù)據(jù)開(kāi)發(fā);7.游戲開(kāi)發(fā)等。
1、概念
CopyOnWriteArrayList是Java并發(fā)包中提供的并發(fā)容器,是一種線程安全、閱讀操作無(wú)鎖的ArrayList,通過(guò)創(chuàng)建底層數(shù)組的新副本來(lái)實(shí)現(xiàn)寫(xiě)作操作,是一種讀寫(xiě)分離的并發(fā)策略,我們也可以稱(chēng)之為“寫(xiě)時(shí)復(fù)制”。CopyOnWriteArrayList允許并發(fā)閱讀,讀不加鎖,最重要的是寫(xiě)作時(shí)不影響閱讀,因?yàn)閷?xiě)作時(shí)復(fù)制原數(shù)組在新的數(shù)組操作,根本不影響原數(shù)組。只有多個(gè)寫(xiě)作是同步的。我認(rèn)為它與數(shù)據(jù)庫(kù)的多版并發(fā)機(jī)制非常相似。
2、實(shí)例
public boolean add(E e) { final ReentrantLock lock = this.lock; lock.lock(); try { Object[] elements = getArray(); int len = elements.length; Object[] newElements = Arrays.copyOf(elements, len + 1); newElements[len] = e; setArray(newElements); return true; } finally { lock.unlock(); } }
關(guān)于java中CopyOnWriteArrayList的作用是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。