JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
合方圆~小文1 天前
高性能20倍变焦球机转动功能监控设备
数据结构·数据库·数码相机·模块测试
q***58191 天前
【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
数据库·sql·mysql
懒羊羊不懒@1 天前
【MySQL | 基础】多表查询
数据库·sql·mysql
百***6971 天前
redis 使用
数据库·redis·缓存
mit6.8241 天前
[Column] 构建十亿/s级DB | 索引DB&RTDB | Kafka 为中心 | Rust 构建引擎
数据库
q***0561 天前
在Mysql环境下对数据进行增删改查
数据库·mysql
爬山算法1 天前
Redis(124)Redis在电商系统中的应用有哪些?
数据库·redis·缓存
武子康1 天前
Java-170 Neo4j 事务、索引与约束实战:语法、并发陷阱与速修清单
java·开发语言·数据库·sql·nosql·neo4j·索引
数据库学啊1 天前
靠谱的时序数据库哪家技术强
数据库·时序数据库
Wang's Blog1 天前
MySQL: 存储引擎深度解析:CSV与Archive的特性、应用与实战演示
数据库·mysql