JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
疯狂打码的少年几秒前
说透 SQL 连接:一文讲清 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN
数据库·sql
杨云龙UP11 分钟前
Oracle / ODA环境TRACE、alert日志定位与ADRCI清理 SOP_20260423
linux·运维·服务器·数据库·oracle
fengxin_rou11 分钟前
黑马点评实战篇|第七篇:Redis消息队列
数据库·redis·缓存
科技小花11 分钟前
测评|2026五大数据治理平台横向对比:谁在定义数据中台的“智能引擎”?
大数据·数据库·人工智能·数据治理·数据中台
千月落13 分钟前
Redis Cluster 集群部署
数据库·redis·缓存
撩得Android一次心动16 分钟前
Android Room 数据库详解【使用篇】
android·数据库·room·jetpack
yaoxin52112317 分钟前
388. Java IO API - 处理事件
java·服务器·数据库
colofullove21 分钟前
推导中异常处理
数据库·oracle
黑牛儿31 分钟前
MySQL主流存储引擎深度解析:优缺点对比+实操选型指南
数据库·mysql
奋斗tree31 分钟前
SQL Server数据库自动备份终极指南方法三
数据库·oracle