阅读背景:

wait(),notify() 和 notifyAll()使用及原理

来源:互联网 

    简述:在上一篇日志中,分析了synchronized关键字,其底层是对对象加锁,通过锁来限制同一时刻只有一个线程来访问同步块,而wait方法是让当前线程失去对锁的拥有权,让出锁,让其他线程进入,又有monitor监视器是属于对象的,那么wait方法及notify也是数据对象的,他们都是对某一个对象的锁的获取和释放。基于以上,可以看出来对于wait方法是建立在锁之上的,notify/notifyAll 方法也是建立在锁的基础上,他们会唤醒在当前锁对象上面等待的线程,直到当前线程执行完synchronized方法体以后,会唤醒在当前锁上等待的线程。所以对notify/notifyAll 方法的调用最好是在synchronized方法的最后一步,执行完notify/notifyAll 之后就会释放掉锁。    简述:在上一篇日志中,分析了synchronized关键字,其底层是对对象加锁,通过锁




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: