首页
生活
归档
分类
标签
动态
相册
友链
关于
1
Dream 主题使用手册 - 基础篇
2
Ubuntu 22.04 桌面美化之Mac Big Sur风格
3
网站访问速度优化之ServiceWorker
4
Dream 主题预览
5
OpenVPN 介绍以及服务端和客户端部署
殇雪
投资未来的人,是忠于现实的人。
累计撰写
140
篇文章
累计创建
68
个标签
累计收到
440
条评论
导航
首页
生活
归档
分类
标签
动态
相册
友链
关于
目录
搜索
标签搜索
网盘拉新
副业
黄金
Swagger
编辑器
Gin
Web
Go
Nginx
保险
Halo-Plus
信用卡
Spring
数字货币
搜索
Lucene
区块链
IDEA
故事
单点登录
MySQL
Nacos
Java
旅行
反欺诈
Dream
ServiceWorker
Docker
容器
集合类
锁系列
领域驱动设计
JWT
Oauth
缓存
加密算法
SEO
Hexo
Redis
Ignite
分布式
源码分析
Vue
类加载器
博客
动态规划
排序算法
多线程
JVM
软考星题库
MyBatis
Git
图数据库
应用部署
Nodejs
CDN
软件测试
SpringBoot
Maven
Linux
Python
汇编
内网穿透
Frp
Spring Security
Shiro
沙雕
MQ
玖涯博客
望仔的秘密基地
标签
锁系列
Java 锁系列(四)——ReentrantLock源码Condition实现分析
Condition 是个接口,依赖于 Lock 接口的实现,基本的方法就是 await() 和 signal() 方法,是在 java 1.5 中才出现的,用于替代 Object 的 wait()、notify() 实现线程间的协作,相比使用 Object 的 wait()、notify(),使用 Condition 的 await()、signal() 这种方式实现线程间协作更加安全和高效。因此通常来说比较推荐使用Condition,阻塞队列实际上是使用了Condition来模拟线程间协作。
2 年前
1544
1
2
185.4℃
分布式与高并发
JAVA与JVM
Java 锁系列(七)——StampedLock源码分析
StampedLock 是读写锁的实现,对比 ReentrantReadWriteLock 主要不同是该锁不允许重入,多了乐观读的功能,使用上会更加复杂一些,且仅支持非公平锁,但是具有更好的性能表现。StampedLock 的状态由版本和模式组成。 获取锁方法返回一个邮戳,表示和控制与锁状态相关的访问; 这些方法的“尝试”邮戳可能会返回特殊值 0 来表示获取锁失败。 锁释放和转换方法需要标记作为参数,如果它们与锁的状态不匹配则失败。本文对 StampedLock 的实现源码进行分析。
2 年前
1411
0
1
167.1℃
分布式与高并发
JAVA与JVM
Java 锁系列(六)——StampedLock使用
StampedLock 是读写锁的实现,对比 ReentrantReadWriteLock 主要不同是该锁不允许重入,多了乐观读的功能,使用上会更加复杂一些,但是具有更好的性能表现。StampedLock 的状态由版本和模式组成。 获取锁方法返回一个标记,表示和控制与锁状态相关的访问; 这些方法的“尝试”版本可能会返回特殊值 0 来表示获取锁失败。 锁释放和转换方法需要标记作为参数,如果它们与锁的状态不匹配则失败。本文描述 StampedLock 的基础使用场景,入门教程。
2 年前
1457
0
2
173.7℃
分布式与高并发
JAVA与JVM
Java 锁系列(五)——ReentrantReadWriteLock源码分析
ReentrantReadWriteLock 是读写锁的实现,读锁可以在没有写锁的时候被多个线程同时持有,写锁就是和 ReentrantLock 类似的独占锁,它同样有包含公平锁和不公平锁两种实现方式,在实例化时将同时实例化 ReadLock 和 WriteLock 实例,本文主要聚焦于 WriteLock 的实现分析,因为 ReentrantReadWriteLock 中的部分实现与 ReentrantLock 一样基于 AbstractQueuedSynchronized 的实现,对于一些相同的逻辑本文不再赘述。
2 年前
1439
0
2
171.9℃
分布式与高并发
JAVA与JVM
Java 锁系列(三)——ReentrantLock源码分析
ReentrantLock 是一个可重入的独占锁,是基于 AQS(AbstractQueuedSynchronized,抽象队列式同步器)实现的,它有公平锁和不公平锁两种实现方式。简单查看源码,可以发现 ReentrantLock 其实是一个代理的模式,Reentranlock 的核心是其内部继承自 AbstractQueuedSynchronized 的抽象类 Sync,将 Sync 作为锁的同步基础,其中加锁/解锁等操作其实都是由 Sync 对象完成的,也是通过实例化 FairSync 或 NonfairSync 分别对应公平锁和非公平锁的实现。
3 年前
1445
0
0
168.5℃
分布式与高并发
JAVA与JVM
Java 锁系列(二)——ReentrantLock 和 ReentrantReadWriteLock基础运用
Lock 接口提供了与 synchronized 相似的功能,和 synchronized 不同的是,Lock 在使用的时候需要显示的获取和释放锁。虽然牺牲了隐式获取释放锁的便捷性,但是对于锁的操作具有更强的可操作性、可控制性以及提供可中断操作和超时获取锁等机制。本文将描述 ReentrantLock 和 ReadWriteLock 锁的基础使用。
3 年前
1411
0
2
169.1℃
分布式与高并发
JAVA与JVM
Java 锁系列(一)——锁分类和基础概述
在多线程在获取资源的时候,锁用于保证资源获取的有序性和占用形,可以控制多个线程访问共享资源的顺序。Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对 java 主流的锁进行分类,梳理锁相关的基础知识。
3 年前
1347
0
2
162.7℃
分布式与高并发
JAVA与JVM
弹