JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
liux35282 分钟前
从零开始学MySQL:入门基础篇(一)
数据库·mysql·oracle
笃行客从不躺平21 分钟前
PG SQL 行转列记录
数据库·sql
難釋懷38 分钟前
Redis桌面客户端
数据库·redis·缓存
心态还需努力呀40 分钟前
国产时序数据库进入深水区:2026 年的技术分化与融合式架构趋势解析
数据库·架构·时序数据库
填满你的记忆41 分钟前
【从零开始——Redis 进化日志|Day5】分布式锁演进史:从 SETNX 到 Redisson 的完美蜕变
java·数据库·redis·分布式·缓存
lendsomething42 分钟前
Spring 多数据源事务管理,JPA为例
java·数据库·spring·事务·jpa
玩转数据库管理工具FOR DBLENS1 小时前
人工智能:演进脉络、核心原理与未来之路 审核中
数据库·人工智能·测试工具·数据库开发·数据库架构
晓风残月淡1 小时前
高性能MYSQL(四):查询性能优化
数据库·mysql·性能优化
cab51 小时前
MyBatis如何处理数据库中的JSON字段
数据库·json·mybatis
天若有情6731 小时前
用MySQL+BI工具搭建企业级数据可视化看板:从数据准备到动态展示全攻略
数据库·mysql·信息可视化