fast-fail机制
ConcurrentModificationException异常抛出场景
@Test
public void exception1() throws InterruptedException {
List<Integer> list = new ArrayList<>();
ExecutorService threadPool = Executors.newFixedThreadPool(3);
for (int i = 0; i < 1000; i++) {
final int a = i;
threadPool.execute(() -> {
list.add(a);
});
}
Collections.sort(list);
TimeUnit.SECONDS.sleep(2);
}
//抛出如下异常(省略部分异常信息):
java.util.ConcurrentModificationException
at java.util.ArrayList.sort(ArrayList.java:1456)
at java.util.Collections.sort(Collections.java:141)
at com.maxwell.learning.common.ListExample.exception1(ListExample.java:123)
at java.util.ArrayList.forEach(ArrayList.java:1249)如何避免
参考
Last updated