首頁 >Java >java教程 >如何使用java的CopyOnWriteArrayList?

如何使用java的CopyOnWriteArrayList?

PHPz
PHPz轉載
2023-05-09 22:55:251441瀏覽

概念

1、CopyOnWriteArrayList是Java並發包中提供的並發容器,是一種線程安全、閱讀操作無鎖的ArrayList,透過建立底層數組的新副本來實現寫作操作,是一種讀寫分離的並發策略,我們也可以稱之為「寫時複製」。

2、CopyOnWriteArrayList允許並發閱讀,讀不加鎖,最重要的是寫作時不影響閱讀,因為寫作時複製原數組在新的數組操作,根本不影響原始數組。只有多個寫作是同步的。我認為它與資料庫的多版並發機制非常相似。

實例

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();
        }
    }

以上是如何使用java的CopyOnWriteArrayList?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除