JMM是如何保证原子性呢?

3.3.1加锁

锁是一种通用技术,比如Java提供的Synchronized关键字就是锁的一种实现,Synchronized是排他锁 /独占锁,就是有你没我的意思,只要其他线程到来访问,发现锁还未释放,就要在外面等待,因为Synchronized保证在同一时间内只有一个线程能够操作数据,其保证了原子性。

3.3.2原子变量(并发量少的情况)

在java.util.concurrent下,可以发现有atomic包,它可以解决原子性问题,加锁是阻塞式方式,而原子变量是非阻塞方式。

原子类(比如AtomicInteger):原子类的原子性是通过volatile+CAS实现原子操作的,volatile为CAS的实现提供了基础。

相关推荐
小小龙学IT1 小时前
Drizzle ORM:TypeScript 生态中冉冉升起的数据库工具链引言
javascript·数据库·typescript
ECT-OS-JiuHuaShan3 小时前
什么是对和错?——“有针对性定义域的逻辑值的真伪”:认识论终极追问的公理化裁决
数据库·人工智能·算法·机器学习·数学建模
乐维_lwops3 小时前
多类型数据库如何高效监控?
数据库·数据库监控·运维监控
齐潇宇3 小时前
Redis数据库基础
linux·数据库·redis·缓存
三更两点3 小时前
AI拉呱-技术洞察 - 2026-06-01
数据库·人工智能·技术洞察
程序边界3 小时前
KES查询优化与运维实战:从表空间到SQL内核那些让DBA少加班的事
数据库
Lyyaoo.3 小时前
【MySQL】存储引擎
数据库·mysql
huluang3 小时前
密评多选题 — 陷阱名单(费曼自述法版)
网络·数据库·密码学
AOwhisky4 小时前
学习自测与解析:MySQL 系列第三期与第四期
linux·运维·数据库·学习·mysql·云计算
Esaka_Forever4 小时前
PyCharm 社区版无法识别 .db 文件类型
数据库·ide·pycharm