try{obj_pro.wait();}catch(InterruptedException  e){}//这句只会释放obj_pro,不会释放obj_con,所以你的消费者基本没有机会获取到obj_con

解决方案 »

  1.   


    首先非常感谢大神的回复,解了燃眉之急!
    其次,说明我的猜测是正确的,wait方法只会释放最近获取的锁,而不会全部释放。
    第三,那么这样定义释放锁的机制的意义是什么呢?只释放一个,保留其他的是为了什么?分先给你加上,再帮忙回答一下呗~~~
      

  2.   


    首先非常感谢大神的回复,解了燃眉之急!
    其次,说明我的猜测是正确的,wait方法只会释放最近获取的锁,而不会全部释放。
    第三,那么这样定义释放锁的机制的意义是什么呢?只释放一个,保留其他的是为了什么?分先给你加上,再帮忙回答一下呗~~~不是就近原则,而是obj_pro.wait(),释放的就是obj_pro,假设你在这的是obj_con.wait(),那释放的就是obj_con
      

  3.   


    首先非常感谢大神的回复,解了燃眉之急!
    其次,说明我的猜测是正确的,wait方法只会释放最近获取的锁,而不会全部释放。
    第三,那么这样定义释放锁的机制的意义是什么呢?只释放一个,保留其他的是为了什么?分先给你加上,再帮忙回答一下呗~~~不是就近原则,而是obj_pro.wait(),释放的就是obj_pro,假设你在这的是obj_con.wait(),那释放的就是obj_con哦,原来是这样,哎,我自己想得太外行了。,再次谢谢你!