【发布时间】:2010-01-26 10:02:36
【问题描述】:
我的 Queue 类在负载下遇到互斥问题,我不知道为什么会发生这些问题。
objects = new ArrayList<Object>();
public synchronized int getSize(){
return objects.size();
}
public synchronized Object dequeue(){
if(getSize()==0){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return objects.remove(0);
}
public synchronized void enqueue(Object o){
objects.add(o);
notify();
}
似乎一段时间后的 dequeue 方法会导致 Java.lang.IndexOutOfBoundsException ,在我看来,线程已经能够多次调用 dequeue 方法,而它不应该如此。有什么想法???
W
【问题讨论】:
标签: java multithreading mutex