网站首页 > 博客文章 正文
原子操作的例子
AtomicInteger
的incrementAndGet()
方法等价于++count
,并是原子操作;
AtomicInteger
的getAndIncrement()
方法等价于count++
,并是原子操作。
原子操作的好处
首先,不会忘了在正确的时候获取锁。
其次,由于没有锁的参与,对原子变量的操作不会引发死锁。
最后,原子变量是无锁(lock-free)非阻塞(non-blocking)算法的基础,这种算法可以不用锁和阻塞来达到同步的目的。无锁的代码比起有锁的代码更为复杂。java.util.concurrent包中的类都尽量使用了无锁的代码,使用户在一定程度上免于亲自实现。
volatile变量
将Java变量标记成volatile,可以保证变量的读写不被乱序执行。
volatile是一种低级形式的同步。将变量标记成volatile
并不能保证变量的++操作是原子的。
猜你喜欢
- 2024-09-26 “全栈2019”Java原子操作第十一章:CAS与ABA问题介绍及解决方案
- 2024-09-26 【Go语言】Golang中原子操作用法(go 原子操作)
- 2024-09-26 从CAS讲起,真正高性能解决并发编程的原子操作
- 2024-09-26 “全栈2019”Java原子操作第九章:atomic包下原子数组介绍与使用
- 2024-09-26 “全栈2019”Java原子操作第九章:atomic包下原子数组简单介绍
- 2024-09-26 “全栈2019”Java原子操作第十一章:CAS与ABA问题介绍与探讨
- 2024-09-26 CAS原子操作实现无锁及性能分析(cas能保证原子性吗)
- 2024-09-26 面试必备:Java 原子操作的实现原理「精品长文」
- 2024-09-26 原子操作&普通锁&读写锁原理讲解
- 2024-09-26 并发编程 --- CAS原子操作(cas cpu原语)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)