JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
CodeAmaz4 分钟前
Spring编程式事务详解
java·数据库·spring
scan7249 分钟前
python mcp 打印出参数
linux·服务器·数据库
Evan芙11 分钟前
mysql二进制部署以及多实例部署
android·数据库·mysql
Access开发易登软件18 分钟前
Access开发实战:绘制漏斗图实现业务转化分析
数据库·信息可视化·html·vba·图表·access
云老大TG:@yunlaoda36022 分钟前
开通华为云国际站代理商的UCS服务需要哪些资质?
大数据·数据库·华为云·云计算
总有刁民想爱朕ha26 分钟前
Windows Server 2019部署MySQL 8教程
数据库·windows·mysql
纪伊路上盛名在28 分钟前
记1次BioPython Entrez模块Elink的debug
前端·数据库·python·debug·工具开发
程序员水自流31 分钟前
MySQL数据库自带系统数据库功能介绍
java·数据库·mysql·oracle
旧梦吟34 分钟前
脚本网页 三人四字棋
前端·数据库·算法·css3·html5
小光学长39 分钟前
基于ssm的考研复习平台w0ws1848(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库