ArrayList多线程调用add()可能出现的问题
一 ArrayList在多线程调用Add()添加元素时的下标越界问题
下标越界问题 java.lang.ArrayIndexOutOfBoundsException
public class ArrayListTest {
public static List list = new ArrayList<>();
static class AddToList implements Runnable {
int num = 0;
public AddToList(int num) {
this.num = num;
}
@Override
public void run() {
int count = 0;
while (count < 100) {
list.add(num);
num += 1;
count++;
}
}
}
public static void main(String[] args) {
new Thread(new AddToList(0)).start();
new Thread(new AddToList(1)).start();
}
}
同时使用两个线程进行添加数据,很容易会出现如下异常:
Exception in thread "Thread-0" java.lang.ArrayIndexOutOfBoundsException: