
atomic代表的是concurrent包下Atomic开头的类 , 如AtomicBoolean、AtomicInteger、AtomicLong等都是用原子的方式来实现指定类型的值的更新 , 它的底层通过CAS原理解决并发情况下原子性的问题 。
cas(compareand set) , 操作原理是 , cas(abc)a代表需要更新的变量 , b代表变量当前的期望值 , c代表变量更新成的值 。 当变量a=b的时候 , 变量a的值才会更新成c;如果a!=b , 那么说明变量已经被更新过 , 更新失败
当多个线程同时使用cas更新一个变量 , 只有一个线程可以更新成功 , 其他的执行失败 。 失败的线程不会被挂起 , 可以重试cas操作 , 也可以放弃操作 。
在jdk中cas是Unsafe类中的api来实现的 。
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F
【大疆|说一下 atomic 的原理?】
- ios16|未受到电商冲击,理发店为啥还是纷纷倒闭?过来人说出真相
- iqoo|卡贴机大降价,iPhone13只要3000出头,网友都说“真香”
- “大家好,我是渣渣辉!”,最近刷爆朋友圈的港普大家来了解一下
- 太阳系有两个“太阳”,科学家提出“太阳伴侣”假说,它终会回来
- |大家都说iPhone好看,其实可能对这个品牌更喜欢才对
- 苹果|618市场怎么样?手机市场销量排行一边倒?这又说明了什么?
- 马云|马云自己\打脸\之前所说的,如今现身西班牙,开12亿游艇!
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- 三星|没有人会在意你用的是索尼A9二代还是一代,靠作品说话
- 芯片|二手商品可以放心买吗?体验转转买手机后,我有话说
