解答
第一点:wait 会引起lost wake up问题,就是如果wait 和 notify写在同一个synchronized对象中话,会出现发送notify的之后,另外一个该对象的才刚刚调用wait方法,这就导致调用wait的对象一直无法被显式唤醒。
第二点:这个是自己的想法,因为wait() 是Object类型中方法,也就是wait是针对于对象而言,而每个对象都有自己的monitor锁,访问操作这个对象首先要获得monitor锁,而且也由于wait()操作会放弃对cpu的占用,所以想要唤醒某个线程,必要要获取对象的锁,也就是说要获取synchronized,所以wait() 和 notify() 必须要写在同一个对象的synchronized代码块中。
帖子还没人回复快来抢沙发