自己认为的, 不知道对不对,
wait()方法是定义在Object类中的,
对于sychronized限定的代码而言, 调用者是当前的监控器对象, 可以理解为java内部将该监控器与当前线程进行了绑定, 当synchronized中的代码执行完毕后, 该绑定又被一种特殊的方式解除了
对于ReentrantLock锁而言, 也是类似, 当拿到锁的时候, 当前线程与lock进行了绑定, 所以, 可以调用lock.wait(), 释放锁后 , 该绑定又被一种特殊的方式解除了
自己认为的, 不知道对不对,
wait()方法是定义在Object类中的,
对于sychronized限定的代码而言, 调用者是当前的监控器对象, 可以理解为java内部将该监控器与当前线程进行了绑定, 当synchronized中的代码执行完毕后, 该绑定又被一种特殊的方式解除了
对于ReentrantLock锁而言, 也是类似, 当拿到锁的时候, 当前线程与lock进行了绑定, 所以, 可以调用lock.wait(), 释放锁后 , 该绑定又被一种特殊的方式解除了
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。