public class TestMain {
private static Vector<Integer> vector = new Vector<>();
public static void main(String[] args) {
while(true) {
for (int i = 0; i < 1000; i++) {
vector.add(i);
}
Thread removeThread = new Thread(() -> {
for (int i = vector.size() - 1; i >= 0; i--) {
vector.remove(i);
}
});
Thread printThread = new Thread(() -> {
for (int i = 0 ; i < vector.size() ; i++) {
System.out.println(i);
}
});
removeThread.start();
printThread.start();
while(Thread.activeCount() > 20);
}
}
}
for (int i = 0; i < 1000; i++)
首先循环次数搞大点。for (int i = vector.size() - 1; i >= 0; i--)
remove线程里的循环倒序。
这样增大碰撞率,就会出现作者说的异常了。