刘 佳 发表于 2012-10-15 14:11
嗯,就是你说的这段话。
如果想使用多个wait notify方法的话就必须创建多个synchronized锁,因为1个synch ...
记得视频里的教程调用wait的时候好像省略了this,可能就是因为这个把你弄晕了
在程序执行到wait语句的时候,程序做了2个动作。
1是冻结线程
2是释放该对象上的锁
只有释放了该synchronized的锁,才能有第二个线程进来,才能执行到下面的notify。
notify也一样,比如a.notify唤醒的也是因为执行a。wait语句冻结的线程。
那既然wait还有1个释放锁的任务要执行,它当然要定义在锁中。才有锁可以释放。且它的调用对象应该是和当年线程所持的锁对象一致。否则会出现异常。所以就出现了1个synchronized对应1组wait notify的情况
|