Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?

Lock 接口比同步方法和同步块提供了更具扩展性的锁操作

他们允许更灵活的结构可以具有完全不同的性质并且可以支持多个相关类的 

条件对象

它的优势有

可以使锁更公平 

可以使线程在等待锁的时候响应中断 

可以让线程尝试获取锁并在无法获取锁的时候立即返回或者等待一段时间 

可以在不同的范围以不同的顺序获取和释放锁 

整体上来说 Lock  synchronized 的扩展版,Lock 提供了无条件的可轮询的 

(tryLock 方法)、定时的(tryLock 带参方法)、可中断的(lockInterruptibly)、可多 

条件队列的(newCondition 方法)锁操作另外 Lock 的实现类基本都支持非公平 

(默认)和公平锁,synchronized 只支持非公平锁当然在大部分情况下 

公平锁是高效的选择

posted @ 2020-10-09 12:32  咔啡  阅读(181)  评论(0编辑  收藏  举报