JMM是如何保证原子性呢?

3.3.1加锁

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

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

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

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

相关推荐
m0_617881422 分钟前
如何优雅处理SQL存储过程异常_使用TRY-CATCH块机制
jvm·数据库·python
步辞2 分钟前
如何用SQL实现分组内前N个百分比筛选_窗口函数应用
jvm·数据库·python
m0_684501982 分钟前
PySpark中高效展开嵌套数组:避免笛卡尔爆炸的正确实践
jvm·数据库·python
zdzx auvu2 分钟前
MySQL 函数
数据库·mysql
qq_372906935 分钟前
Layui如何实现表格内部的图片点击后进入相册轮播模式
jvm·数据库·python
趙卋傑7 分钟前
如何安装多个版本的MySQL
数据库·mysql
四维迁跃7 分钟前
SQL如何优化子查询的性能_改写为JOIN关联查询与消除嵌套
jvm·数据库·python
HalvmånEver7 分钟前
MySQL表的约束(一)
数据库·mysql
djjdjdjdjjdj7 分钟前
Layui上传组件upload怎么监听大文件上传的百分比进度条
jvm·数据库·python
Polar__Star9 分钟前
如何用 bubbles 参数让自定义事件支持在 DOM 树中冒泡
jvm·数据库·python