同步代码块,对于锁的操作是隐式的。
jdk1.5以后将同步和锁封装成了对象。并将操作锁的隐式方式定义到了该对象中。将隐式动作变成了显示动作。
Lock接口:出现替代了同步代码块或者同步函数。将同步的隐式锁操作变成现实锁操作。同时更为灵活。可以一个锁加上多组监视器。
lock():获取锁
unlock():释放锁 通常需要定义在finally代码块中
Condition接口:出现替代了Object中的wait(),notify(),notifyAll()方法。将这些监视器方法单独进行了封装,变成了Condition监视器对象。可以任意锁进行组合。
await(); signal();signalAll();