Heim >Java >javaLernprogramm >Wie verwende ich Javas CopyOnWriteArrayList?

Wie verwende ich Javas CopyOnWriteArrayList?

PHPz
PHPznach vorne
2023-05-09 22:55:251456Durchsuche

Concept

1. CopyOnWriteArrayList ist ein gleichzeitiger Container, der im Java-Parallelitätspaket bereitgestellt wird. Es handelt sich um eine threadsichere, sperrenfreie ArrayList für Lesevorgänge, die eine neue Kopie des zugrunde liegenden Arrays erstellt ist eine Lese-Schreib-Trennung. Die Parallelitätsstrategie kann auch als „Copy-on-Write“ bezeichnet werden.

2. CopyOnWriteArrayList ermöglicht das gleichzeitige Lesen und das Lesen ist nicht gesperrt. Das Wichtigste ist, dass das Lesen beim Schreiben nicht beeinträchtigt wird, da beim Schreiben das ursprüngliche Array kopiert und auf das neue Array angewendet wird, was keine Auswirkungen auf das hat Original-Array überhaupt. Es werden nur mehrere Schriften synchronisiert. Ich denke, es ist dem Mehrversions-Parallelitätsmechanismus einer Datenbank sehr ähnlich.

Instanzen

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

Das obige ist der detaillierte Inhalt vonWie verwende ich Javas CopyOnWriteArrayList?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen