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

摘要:
Lock接口提供了比同步方法和同步块更可扩展的锁定操作。它们允许更灵活的结构,并且可以支持多个相关类的条件对象。它可以使锁更公平。它可以使线程在等待锁时响应中断。它可以让线程尝试获取锁,并在无法获取锁时立即返回,或者等待一段时间以不同的范围和顺序获取和释放锁。总的来说,Lock是synchronized的扩展版本。

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

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

条件对象

它的优势有

可以使锁更公平 

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

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

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

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

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

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

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

公平锁是高效的选择

免责声明:文章转载自《Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用TRY CATCH进行SQL Server异常处理Chord算法实现具体下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Serializable 接口与 Java 序列化与反序列化

0. 序列化的意义 从内存到本地即为本地化或者在网络中进行传输,或叫序列化,持久化。 某 Java 类实现 Serializable 接口的目的是为了可持久化(简单理解为本地化),比如网络传输或本地存储,为系统的分布式运行和异构部署提供先决支持条件。若没有序列化,我们熟悉的远程调用(RPC,无法读取远程主机内存中的任何目标,必须首选在远程将目标序列化),对...

dwr报错整理【一】

对于dwr,又一个非常重要的问题的记录.在使用dwr与spring整合时,发现当js文件里使用对应的java服务器端代码时,只要你在对应的方法里使用dao,就会报A server error has occured的错误.我采取的方法是在对应的方法里本是用dao的地方,从新写业务端的代码,比如我的以查询对应内容,findcontext()方法里使用了dao...

什么是TDD(一)

引子 回顾 虽然我很早以前就听说单元测试,也曾经多次在项目中引入单元测试框架和单元测试的实践为代码质量的提升带来了一丝助力。 但这种方式更多的是从软件调试的角度出发,即将单元测试作为一种测试方法可用性的入口,而非从TDD、极限编程、或从"Fail Fast,Fix Fast”这种获得快速反馈的方式来使用单元测试,使得实际过程中单元测试的效果并不明显。 直到去...

Netty源码分析之ChannelPipeline(二)—ChannelHandler的添加与删除

上篇文章中,我们对Netty中ChannelPipeline的构造与初始化进行了分析与总结,本篇文章我们将对ChannelHandler的添加与删除操作进行具体的的代码分析; 一、ChannelHandler的添加 下面是Netty官方的一段demo源码,可以看到在服务端初始化时执行了向ChannelPipeline中添加自定义channelHandler...

[转载]java中Statement详细用法

1、创建 Statement 对象建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:Connection con = DriverManager.getConnection(url, "sunny", "");Statement...

yiifiltersAccessControl 访问权限控制

Class yiifiltersAccessControl所有类 | 属性 | 方法   继承 yiifiltersAccessControl » yiiaseActionFilter » yiiaseBehavior » yiiaseBaseObject 实现 yiiaseConfigurable 可用版本自 2.0 源码 https:...