下面是我面試的一道題,沒看出問題,大家看看問題在哪裡?
下面的代碼在絕大部分時間運行的很正常,請問在什麼情況會出現問題?出現什麼問題?問題的根源在哪裡?
public class Stack{
LinkedList list = new LinkedList();
// 入棧
public synchronized void push(Object x ){
synchronized( list ){
list.addLast( x );
notify();
}
}
//出棧
public synchronized Object pop( ) throws Exception{
synchronized( list ){
if( list.size() <= 0 ){
wait();
}
return list.removeLast();
}
}
}