Maison > Java > javaDidacticiel > Comment utiliser CopyOnWriteArrayList de Java ?

Comment utiliser CopyOnWriteArrayList de Java ?

PHPz
Libérer: 2023-05-09 22:55:25
avant
1440 Les gens l'ont consulté

Concept

1. CopyOnWriteArrayList est un conteneur simultané fourni dans le package de concurrence Java. Il s'agit d'une ArrayList sécurisée pour les threads et sans verrouillage pour les opérations de lecture. En créant le sous-jacent Utiliser une nouvelle copie du tableau pour implémenter l'opération d'écriture est une stratégie de concurrence qui sépare la lecture et l'écriture. On peut également l'appeler « copie sur écriture ».

2. CopyOnWriteArrayList permet une lecture simultanée, et la lecture n'est pas verrouillée. La chose la plus importante est que cela n'affecte pas la lecture lors de l'écriture, car lors de l'écriture, copier le tableau d'origine et l'utiliser dans un nouveau tableau. n'affecte pas du tout le tableau d'origine. Seules plusieurs écritures sont synchronisées. Je pense que c'est très similaire au mécanisme de concurrence multi-versions d'une base de données.

Exemple

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();
        }
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal