下面是我面试的一道题,没看出问题,大家看看问题在哪里?

 

下面的代码在绝大部分时间运行的很正常,请问在什么情况会出现问题?出现什么问题?问题的根源在哪里?

    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();
            }
        }
    }    

 

posted on 2016-09-08 16:31  臧臧  阅读(256)  评论(1编辑  收藏  举报