示例代码
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
IntStream.range(0, 10).forEach((i)->{
new Thread(()->{
list.add(i);
}).start();
});
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(list);
}
多次测试会出现 类似结果
解决方法
- Vector
- Collections.synchronizedList();
- CopyOnWriteArrayList