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

Wie verwende ich Javas CopyOnWriteArrayList?

PHPz
Freigeben: 2023-05-09 22:55:25
nach vorne
1438 Leute haben es durchsucht

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();
        }
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage