- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
java.util.concurrent.locks
接口Lock
所有已知实现类:
ReentrantLock,ReentrantReadWriteLock.ReadLock,
ReentrantReadWriteLock.WriteLock
publicinterfaceLock
Lock实现了比使用synchronized方法和语句可获得的更广泛的锁定操作。
此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的
Condition对象。
锁是控制多个线程对共享资源进行的工具。通常,锁了对共享资源的独
占。一次只能有一个线程获得锁,对共享资源的所有都需要首先获得锁。不
过,某些锁可能允许对共享资源并发,如ReadWriteLock的锁。
synchronized方法或语句的使用了对与每个对象相关的隐式监视器锁的访
问,但却强制所有锁获取和释放均要出现在一个块结构中:当获取了多个锁时,
它们必须以相反的顺序释放,且必须在与所有锁被获取时相同的词法范围内释放所
有锁。
虽然synchronized方法和语句的范围机制使得使用监视器锁编程方便了很多,
而且还帮助避免了很多涉及到锁的常见编程错误,但有时也需要以更为灵活的方式
使用锁。例如,某些遍历并发的数据结果的算法要求使用
hand-over-hand或chainlocking:获取节点A的锁,然后再获取节点B
的锁,然后释放A并获取C,然后释放B并获取D,依此类推。Lock接口的
实现允许锁在不同的作用范围内获取和释放,并允许以任何顺序获取和释放多个
锁,从而支持使用这种技术。
随着灵活性的增加,也带来了的责任。不使用块结构锁就失去了使用
synchronized方法和语句时会出现的锁自动释放功能。在大多数情况下,应该
使用以下语句:
Lockl=...;
l.lock();
try{
//accesstheresourceprotectedbythislock
}finally{
l.unlock();
}
锁定和取消锁定出现在不同作用范围中时,必须谨慎地确保保持锁定时所执行的
所有代码用try-finally或try-catch加以保护,以确保在必要时释放锁。
Lock实现了使用synchronized方法和语句所没有的其他功能,包括
了一个非块结构的获取锁尝试(tryLock())、一个获取可中断锁的尝试
(lockInterruptibly())和一个获取超时失效锁的尝试(tryLock(long,
TimeUnit))。
Lock类还可以与隐式监视器锁完全不同的行为和语义,如保证排序、非重
入用法或死锁检测。如果某个实现了这样特殊的语义,则该实现必须对这些
语义加以记录。
注意,Lock实例只是普通的对象,其本身可以在synchronized语句中作为目
标使用。获取Lock实例的监视器锁与调用该实例的任何lock()方法没有特别
的关系。为了避免,建议除了在其自身的实现中之外,决不要以这种方式使
用Lock实例。
除非另有说明,否则为任何参数传递null值都将导致抛出
NullPointerException。
内存同步
所有Lock实现都必须实施与内置监视器锁的相同内存同步语义,如The
JavaLanguageSpecification,ThirdEdition(17.4MemoryModel)中所描
述的:
•成功的lock操作与成功的Lock操作具有同样的内存同步效应。
•成功的unlock操作与成功的Unlock操作具有同样的内存同步效应。
不成功的锁定与取消锁定操作以及重入锁定/取消锁定操作都不需要任何内存同
步效果。
实现注意事项
三种形式的锁获取(可中断、不可中断和定时)在其性能特征、排序保证或其他
实现质量上可能会有所不同。而且,对于给定的Lock类,可能没有中断正在进
行的锁获取的能力。因此,并不要求实现为所有三种形式的锁获取定义相同的
保证或语义,也不要求其支持中断正在进行的锁获取。实现必需清楚地对每个锁
定方法所的语义和保证进行记录。还必须遵守此接口中定义的中断语义,以
便为锁获取中断支持:完全支持中断,或仅在进入方法时
您可能关注的文档
- 第15课:海关检查与对话示例.pdf
- 疾病与人类社会演变历史关系及流行病学转变.pdf
- 面料规格及要求:GENSAT设计,78%棉22%聚酯,需阻燃处理.pdf
- 金融学院勤工部九月份工作总结报告.pdf
- 美国联邦建立与宪法原则.pdf
- 14.1寸彩色TFT LCD模块IAXG15H工程规格书.pdf
- 星星变奏曲:朦胧诗艺术与时代背景.pdf
- 施工方案交底与优化:技术济分析及安全管理.pdf
- 碧欧泉奇迹水肌底源液:达人推荐,8天见证肌肤奇迹.pdf
- 制动系统检查与维护手册.pdf
- 2025年(口腔医学)口腔颌面外科科目试题及答案.doc
- 2025至2030中国便携医疗电子行业市场发展分析及有效策略与实施路径评估报告.docx
- 2025年(口腔医学)口腔颌面外科试题及答案.doc
- 杭州市萧山区戴村镇旅游整体规划.pdf
- 海南大厦基坑支护施工组织设计.pdf
- 2026年IT技术支持岗位实战手册IT技术支持人员面试题集.docx
- 海阳事业单位招聘笔试试题.pdf
- 2025年(口腔医学)口腔颌面外科手术学试题及答案.doc
- 课题3 制取氧气 第1课时(导学案)-2024人教版九年级化学上册(解析版).pdf
- 2025至2030中国高钙奶粉市场投资格局与消费需求趋势报告版.docx
最近下载
- 索德格朗诗选.doc VIP
- 托马斯.特朗斯特罗姆诗选.doc VIP
- 能源管理工程思考题(含答案).doc VIP
- 南京师范大学《能源管理工程》2022-2023学年第一学期期末试卷.doc VIP
- 工作票实施规范(调度检修申请单部分).docx VIP
- GBZT201.3-2014 放射治疗机房的辐射屏蔽规范 第3部分:γ射线源放射治疗机房.pdf VIP
- 项目名称《三亚市天涯镇总体规划(2012-2020)》局部调整.PDF VIP
- 2025中华护理学会团体标准——成人患者医用粘胶相关性皮肤损伤的预防及护理.pptx
- 新增头部伽马刀、体部伽马刀项目环评.pdf VIP
- 凤凰单枞茶功效与作用.doc VIP
原创力文档


文档评论(0)