java8的JDK文档------Tutorial - Concurrency Lesson---Lock Objects

简介: java8的JDK文档------Tutorial - Concurrency Lesson---Lock Objects

java8的JDK文档------Tutorial - Concurrency Lesson---Lock Objects

锁定对象

同步代码依赖于一种简单的可重入锁。这种锁易于使用,但有很多局限性。java.util.concurrent.locks 包支持更复杂的锁定习惯。我们不会详细研究这个包,而是专注于它最基本的界面 Lock。

锁对象的工作方式非常类似于同步代码使用的隐式锁。与隐式锁一样,一次只有一个线程可以拥有 Lock 对象。锁定对象还通过其关联的条件对象支持等待/通知机制。

与隐式锁相比,Lock 对象的最大优势是它们能够退出获取锁的尝试。如果锁不能立即可用或在超时到期(如果指定)之前,tryLock 方法将回退。如果另一个线程在获取锁之前发送中断,则 lockInterruptibly 方法将退出。

让我们使用 Lock 对象来解决我们在 Liveness 中看到的死锁问题。艾尔冯斯和加斯顿已经训练自己注意朋友何时要鞠躬。我们通过要求我们的 Friend 对象在继续弓之前必须为两个参与者获取锁来模拟这种改进。以下是改进模型 Safelock 的源代码。为了证明这个成语的多功能性,我们假设阿尔方斯和加斯顿非常迷恋他们新发现的安全鞠躬能力,以至于他们无法停止向对方鞠躬。


下面是文档的原文截图:

image.png

此文档的内容主要摘自JDK8的文档

相关文章
|
2月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
148 5
|
1月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
48 7
|
2月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
93 1
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
85 1
|
3月前
|
缓存 Java Maven
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
66 1
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
|
3月前
|
Java Spring 数据库连接
[Java]代理模式
本文介绍了代理模式及其分类,包括静态代理和动态代理。静态代理分为面向接口和面向继承两种形式,分别通过手动创建代理类实现;动态代理则利用反射技术,在运行时动态创建代理对象,分为JDK动态代理和Cglib动态代理。文中通过具体代码示例详细讲解了各种代理模式的实现方式和应用场景。
46 0
[Java]代理模式
|
3月前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
44 3
java读取linux服务器下某文档的内容
|
3月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
44 1
|
4月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
50 3
|
Java
Java计算机IT编程文档常见单词翻译(四)
Java计算机IT编程文档常见单词翻译(四)
124 0
Java计算机IT编程文档常见单词翻译(四)