Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?
Posted 咔啡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?相关的知识,希望对你有一定的参考价值。
Lock 接口比同步方法和同步块提供了更具扩展性的锁操作。
他们允许更灵活的结构,可以具有完全不同的性质,并且可以支持多个相关类的
条件对象。
它的优势有:
可以使锁更公平
可以使线程在等待锁的时候响应中断
可以让线程尝试获取锁,并在无法获取锁的时候立即返回或者等待一段时间
可以在不同的范围,以不同的顺序获取和释放锁
整体上来说 Lock 是 synchronized 的扩展版,Lock 提供了无条件的、可轮询的
(tryLock 方法)、定时的(tryLock 带参方法)、可中断的(lockInterruptibly)、可多
条件队列的(newCondition 方法)锁操作。另外 Lock 的实现类基本都支持非公平
锁(默认)和公平锁,synchronized 只支持非公平锁,当然,在大部分情况下,非
公平锁是高效的选择。
以上是关于Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?的主要内容,如果未能解决你的问题,请参考以下文章
Java Concurrency - java.util.concurrent API Class Diagram
什么是原子操作?在 Java Concurrency API 中有哪些原 子类(atomic classes)?
什么是原子操作?在 Java Concurrency API 中有哪些原 子类(atomic classes)?