84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
业精于勤,荒于嬉;行成于思,毁于随。
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
ArrayList本来就不是线程安全的,你可以用Collections.synchronizedList()返回的List试一下
本例中,分别测试 ArrayList 和 CopyOnWriteArrayList 这两种情况。ArrayList 会产生 fast-fail 事件,而 CopyOnWriteArrayList 不会产生 fast-fail 事件。
使用 ArrayList 时,会产生 fast-fail 事件,抛出 ConcurrentModificationException 异常;定义如下:
使用时 CopyOnWriteArrayList,不会产生 fast-fail 事件;定义如下:
设置100000000大些就抛异常了。。。
多线程用CopyOnWriteArrayList或者ThreadLocal放ArrayList