Lock接口比同步方法和同步块提供了更具扩展性的锁操作。他们允许更灵活的结构,可以具 有完全不同的性质,并且可以支持多个相关类的条件对象。
它的优势有:
1、 可以使锁更公平
2,可以使线程在等待锁的时候响应中断
3,可以让线程尝试获取锁,并在无法获取锁的时候立即返回或者等待一段时间
4、 可以在不同的范围,以不同的顺序获取和释放锁
整体上来说Lock是synchronized的扩展版,Lock提供了无条件•的、可轮询的(trylock方法)、定时的(tryLock带参方法)、可中断的(lockInterruptibly)、可多条件队列的 (newCondition方法)锁操作。另外Lock的实现类基本都支持非公平锁(默认)和公平锁, synchronized只支持非公平锁,当然,在大部分情况下,非公平锁是高效的选择。
Was this helpful?
0 / 0