JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
一 乐6 分钟前
宠物猫店管理|宠物店管理|基于Java+vue的宠物猫店管理管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·后端·宠物管理
w***375114 分钟前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
一 乐23 分钟前
考公|考务考试|基于SprinBoot+vue的考公在线考试系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·课程设计
--fancy25 分钟前
如何使用Tushare构建自己的本地量化投研数据库
数据库·sql·数据分析
Fɪʀᴇᴡᴏʀᴋs43 分钟前
Oceanbase数据库—基于社区版本的数据库集群管理
运维·数据库·oceanbase
Code Warrior1 小时前
【MySQL数据库】数据类型
android·数据库·mysql
范纹杉想快点毕业1 小时前
《嵌入式硬件从入门到精通:电源 / 模电 / 数电 / 通信核心全解析》
java·开发语言·数据库·单片机·嵌入式硬件
q***4643 小时前
离线安装 Nginx
运维·数据库·nginx
我科绝伦(Huanhuan Zhou)3 小时前
SQL进阶必备:从计算字段到多表联结,让查询效率翻倍!
数据库·sql
i***48614 小时前
Redis重大版本整理(Redis2.6-Redis7.0)
java·数据库·redis