import java.util.LinkedList;
public class lsdf {
LinkedList list = new LinkedList();
public synchronized void push(Object x){
synchronized (list){
list.addLast(x);
notify();
}
}
public synchronized Object pop() throws InterruptedException {
synchronized (list) {
if (list.size() <= 0) {
wait();
}
return list.removeLast();
}
}
}
问题的根源在于你这把锁,如果是同一个对象来使用这把锁可以因为sync为可重入锁,如果是不同的线程则产生阻塞;