java - 多线程iterator修改ArrayList为何没有抛出ConcurrentModificationException异常?
迷茫
迷茫 2017-04-18 10:41:42
0
3
497
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(3)
左手右手慢动作

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 :

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>();
迷茫

S'il est défini sur 100000000, une exception sera levée. . .

Utilisez CopyOnWriteArrayList ou ThreadLocal pour mettre ArrayList dans plusieurs threads

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!