扫码关注官方订阅号
业精于勤,荒于嬉;行成于思,毁于随。
ArrayList本来就不是线程安全的,你可以用Collections.synchronizedList()返回的List试一下
本例中,分别测试 ArrayList 和 CopyOnWriteArrayList 这两种情况。ArrayList 会产生 fast-fail 事件,而 CopyOnWriteArrayList 不会产生 fast-fail 事件。
使用 ArrayList 时,会产生 fast-fail 事件,抛出 ConcurrentModificationException 异常;定义如下:
private static List<String> list = new ArrayList<String>();
使用时 CopyOnWriteArrayList,不会产生 fast-fail 事件;定义如下:
private static List<String> list = new CopyOnWriteArrayList<String>();
设置100000000大些就抛异常了。。。
多线程用CopyOnWriteArrayList或者ThreadLocal放ArrayList
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
ArrayList本来就不是线程安全的,你可以用Collections.synchronizedList()返回的List试一下
本例中,分别测试 ArrayList 和 CopyOnWriteArrayList 这两种情况。ArrayList 会产生 fast-fail 事件,而 CopyOnWriteArrayList 不会产生 fast-fail 事件。
使用 ArrayList 时,会产生 fast-fail 事件,抛出 ConcurrentModificationException 异常;定义如下:
使用时 CopyOnWriteArrayList,不会产生 fast-fail 事件;定义如下:
设置100000000大些就抛异常了。。。
多线程用CopyOnWriteArrayList或者ThreadLocal放ArrayList