ArrayList是fail-fast的典型代表,遍历的同时不能修改,尽快失败
原理是arrayList中有一个修改次数变量,每次修改list这个变量都会+1
获取迭代器时将arrayList中的修改次数变量赋值给迭代器中的变量,之后每次遍历前都要比较这两个变量是否相同,不同则抛出并发修改异常
CopyOnWriteArrayList是fail-safe的典型代表,遍历的同时可以修改,原理是读写分离
ArrayList是fail-fast的典型代表,遍历的同时不能修改,尽快失败
原理是arrayList中有一个修改次数变量,每次修改list这个变量都会+1
获取迭代器时将arrayList中的修改次数变量赋值给迭代器中的变量,之后每次遍历前都要比较这两个变量是否相同,不同则抛出并发修改异常
CopyOnWriteArrayList是fail-safe的典型代表,遍历的同时可以修改,原理是读写分离