public static void deleteLast(Vector list) {
int lastIndex = list.size() - 1;//line 2
list.remove(lastIndex); // line 3
}
我知道Vector在java中是线程安全的 但这种情况会发生吗
让我们说在这种情况下有list.size()= 10
线程A调用deleteLast,第2行调用lastIndex = 9.由于某种原因,它停止
线程B调用deleteLast并在第2行lastIndex = 9.it转到第3行,现在列表有9个元素
线程A现在醒来并转到第3行,现在它尝试删除索引9处不存在的对象,我们在这里有一个例外