多个线程同时向非同步ArrayList的对象添加元素会导致什么问题?
尝试使用具有多个线程的静态ArrayList运行一些实验,但找不到多少.
在这里,我期待在多线程环境中不同步ArrayList或类似对象的大部分副作用.
任何显示副作用的好例子都是可以理解的.谢谢.
下面是我的小实验,顺利进行,没有任何例外.
我也想知道它为什么不抛出任何东西ConcurrentModificationException
?
import java.util.ArrayList;
import java.util.List;
public class Experiment {
static List<Integer> list = new ArrayList<Integer>();
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("A " + i);
new Thread(new Worker(list, "" + i)).start();
}
}
}
class Worker implements Runnable {
List<Integer> al;
String name;
public Worker(List<Integer> list, String name) {
this.al = list;
this.name = name;
}
@Override
public void run() { …
Run Code Online (Sandbox Code Playgroud) 我正在阅读CopyOnWriteArrayList
并想知道如何在ArrayList
课堂上展示数据竞赛.基本上我正在尝试模拟ArrayList
失败的情况,以便有必要使用CopyOnWriteArrayList
.关于如何模拟这个的任何建议.