同步代码块,对于锁的操作是隐式的。
![](https://img.haomeiwen.com/i1518378/4923cfc40d397986.png)
jdk1.5以后将同步和锁封装成了对象。并将操作锁的隐式方式定义到了该对象中。将隐式动作变成了显示动作。
![](https://img.haomeiwen.com/i1518378/8b2072d1a85b2927.png)
![](https://img.haomeiwen.com/i1518378/2204cbb8d0ad2451.png)
![](https://img.haomeiwen.com/i1518378/eb43e62863697834.png)
![](https://img.haomeiwen.com/i1518378/3d003edd46de9ef4.png)
![](https://img.haomeiwen.com/i1518378/8217a28c43eef8b2.png)
![](https://img.haomeiwen.com/i1518378/fbdb16d385e97e21.png)
Lock接口:出现替代了同步代码块或者同步函数。将同步的隐式锁操作变成现实锁操作。同时更为灵活。可以一个锁加上多组监视器。
lock():获取锁
unlock():释放锁 通常需要定义在finally代码块中
Condition接口:出现替代了Object中的wait(),notify(),notifyAll()方法。将这些监视器方法单独进行了封装,变成了Condition监视器对象。可以任意锁进行组合。
await(); signal();signalAll();
网友评论