首先,Lock接口与Synchronized关键字都能提供相同的同步功能,只是Lock接口在使用时,需要显示地获取和释放锁。从而使Lock接口没有像Synchronized关键字那样隐式获取锁来的便捷,然而,Lock接口可以拥有获取锁和释放锁的可操作性、可中断的获取锁以及超时获取锁等多种Synchronized关键字不具备的特性。
具体如下:
特性 | 描述 |
---|---|
尝试非阻塞地获取锁 | 当前线程尝试获取锁,如果这一时刻锁没有被其他线程获取到,则成功获取并持有锁 |
能被中断地获取锁 | 与Synchronized不同,获取到锁的线程能够相应中断,当获取到锁的线程被中断时,中断异常将会被抛出,同时锁会被释放 |
超时获取锁 | 在指定的截止时间之前获取锁,如果截止时间到了仍旧无法获取锁,则返回 |