【发布时间】:2013-03-29 09:20:42
【问题描述】:
我正在尝试使用线程从列表中删除一个值。但是代码失败并给出了异常。请帮助我是线程编程的初学者.....
这是Test.java的内容
import java.util.*;
public class Test {
private static final List<Integer> Values = new ArrayList<Integer> ();
public static void main(String args[]) {
TestThread t1 = new TestThread(Values);
t1.start();
System.out.println(Values.size());
}
}
这是TestThread.java的内容
import java.util.*;
public class TestThread extends Thread {
private final List<Integer> Values;
public TestThread(List<Integer> v) {
this.Values = v;
Values.add(5);
}
public void run() {
Values.remove(5);
System.out.println("5 removed");
}
}
【问题讨论】:
-
什么是异常,是哪一行导致的?
-
1 线程“Thread-0”中的异常 java.lang.IndexOutOfBoundsException:索引:5,大小:1 在 java.util.ArrayList.rangeCheck(ArrayList.java:603) 在 java.util.ArrayList .remove(ArrayList.java:444) 在 TestThread.run(TestThread.java:12)
标签: java multithreading