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