Dans cet exemple, les deux cas ArrayList et CopyOnWriteArrayList sont testés respectivement. ArrayList générera des événements à échec rapide, mais CopyOnWriteArrayList ne générera pas d'événements à échec rapide.
Lors de l'utilisation d'ArrayList, un événement d'échec rapide sera généré et une exception ConcurrentModificationException sera levée ; la définition est la suivante :
private static List<String> list = new ArrayList<String>();
Lors de l'utilisation de CopyOnWriteArrayList, aucun événement d'échec rapide ne sera généré ; la définition est la suivante :
private static List<String> list = new CopyOnWriteArrayList<String>();
ArrayList n'est pas intrinsèquement thread-safe. Vous pouvez l'essayer avec la liste renvoyée par Collections.synchronizedList()
Dans cet exemple, les deux cas ArrayList et CopyOnWriteArrayList sont testés respectivement. ArrayList générera des événements à échec rapide, mais CopyOnWriteArrayList ne générera pas d'événements à échec rapide.
Lors de l'utilisation d'ArrayList, un événement d'échec rapide sera généré et une exception ConcurrentModificationException sera levée ; la définition est la suivante :
Lors de l'utilisation de CopyOnWriteArrayList, aucun événement d'échec rapide ne sera généré ; la définition est la suivante :
S'il est défini sur 100000000, une exception sera levée. . .
Utilisez CopyOnWriteArrayList ou ThreadLocal pour mettre ArrayList dans plusieurs threads