本帖最后由 杨雪松 于 2012-11-4 23:04 编辑
当一个线程生产者t1在你的push函数读锁以后开始判断while语句,为真的话就wait在那里了,不能继续往下执行了,t1就在等待别人来唤醒他;
而另一进程消费者t2去了pop函数,读锁以后判断为假,她就继续往下执行,执行到this.notify();的时候,就唤醒了t1;
因为这时index=0,接着t2再进pop时就wait了,而t1活了以后接着走push,判断为假,执行代码,又唤醒了t2;
总之他俩就是在交替进行,互相唤醒的.不知道我这样说行不行.
你上边说的"马老师说这个进程wait()之后,就要notify()其他进程"这是不对的,他都睡着了怎么唤醒其他人呢...
不过我并没有看过马老师的视频,可能是听错了吧.也可能是老师口误不要太纠结
{:soso__8239267033281376257_3:}
|