- 1
- 0
- 约小于1千字
- 约 1页
- 2026-04-27 发布于北京
- 举报
1、ABA问题:如果某个值一开始是A,后来变成了B,然后又变成了A,你本来期望的是值
如果是第一个A才会设置新值,结果第二个A一比较也ok,也设置了新值,跟期望是不符
合的。所以atomic包里有AtomicStampedReference类,就是会比较两个值的是否一致,
如果一致,才会设置新值
假设一开始变量i=1,你先获取这个i的值是1,然后累加了1,变成了2
但是在此期间,别的线程将i-1-2-3-1
这个期间,这个值是改过的,只不过最后将这个值改成了跟你最早看到的值一样的值
结果你后来去compareAndSet的时候,会发现这个i还是1,就将它设置成了2,就设置成
功了
说实话,用AtomicInteger,常见的是计数,所以说一般是不断累加的,所以ABA问题比较
少见
2、无限循环问题:大家看源码就知道Atomic类设置值的时候会进入一个无限循环,只要不
成功,就不停循环再次尝试,这个在高并发修改一个值的时候其实挺常见的,比如你用
AtomicInteger在内存里搞一个原子变量,然后高并发下,多线程频繁修改,其实可能会导致
这个compareAndSet()里要循环N次才设置成功,所以还是要考虑到的。
JDK1.8引入
您可能关注的文档
- 暑期精英强化课程:图形面积计算原理与应用.pdf
- 斯巴鲁翼豹与XV车型电气系统及接口参考手册.pdf
- 平面口罩外耳带机固定块技术.pdf
- KTV包厢分类与设计趋势分析.pdf
- Dakin反应机理及应用:酚醛或酚酮类化合物氧化制备多元酚.pdf
- 安卓驱动工程师面试指南及简介.pdf
- 新概念英语课堂笔记:正义与相关词汇及例句.pdf
- 2023届高三八校联考理科数学试题答案.pdf
- 九级英语Unit 10礼仪习俗听说课教学设计.pdf
- 分类常见面试问题与解答.pdf
- 2022-2023学年北京市海淀区高三(上)期中历史试卷.pdf
- 2022-2023学年黑龙江省哈尔滨市香坊区风华中学八年级(上)期中语文试卷(五四学制).pdf
- 2022-2023学年黑龙江省鸡西实验中学高二(上)期中政治试卷.pdf
- 2022-2023学年福建省漳州市云霄县三年级(上)期末英语试卷.pdf
- 2022-2023学年福建省厦门市思明区莲花小学四年级(上)期末英语试卷.pdf
- 2022-2023学年河南省洛阳市孟津第一高级中学高一(下)期中政治试卷(B卷).pdf
- 2022-2023学年贵州省黔东南州六校联盟高一(上)期中英语试卷.pdf
- 2022-2023学年贵州省黔西南州兴仁市黔龙学校、黔峰学校、金成学校八年级(上)期中英语试卷.pdf
- 2022-2023学年北京市大兴区八年级(上)期中英语试卷.pdf
- 2022-2023学年甘肃省白银市靖远县八年级(上)期末历史试卷.pdf
原创力文档

文档评论(0)