atomic代表的是concurrent包下Atomic开头的类 , 如AtomicBoolean、AtomicInteger、AtomicLong等都是用原子的方式来实现指定类型的值的更新 , 它的底层通过CAS原理解决并发情况下原子性的问题 。
【芯片|说一下 atomic 的原理?】cas(compareand set) , 操作原理是 , cas(abc)a代表需要更新的变量 , b代表变量当前的期望值 , c代表变量更新成的值 。 当变量a=b的时候 , 变量a的值才会更新成c;如果a!=b , 那么说明变量已经被更新过 , 更新失败
当多个线程同时使用cas更新一个变量 , 只有一个线程可以更新成功 , 其他的执行失败 。 失败的线程不会被挂起 , 可以重试cas操作 , 也可以放弃操作 。
在jdk中cas是Unsafe类中的api来实现的 。
\uD83D\uDE4F如果内容对您有帮助 , 希望您能多多点赞收藏加关注 , 激励作者创作出更加优质内容 , 谢谢!\uD83D\uDE4F
- 芯片|新消息正式传来,这相当于扼住“断供者咽喉”了
- MacBook Pro|MacBook 2022购买分析:均搭载M2芯片,应该选Air还是Pro?
- iPad Pro|搭载M2芯片!苹果新款iPad Pro曝光:内存超级加倍
- 联想|联想拯救者更新R9000P系列!618能不能买说说我的看法
- apu|iQOO旧机销量火热,6nm芯片+5000毫安大电池,仅售1499元
- 红米手机|说实话,我“馋”红米RedmiNote11SE已经很久了
- 华为|华为新机发布:真机曝光 久违的麒麟芯片
- ios16|iOS16首个测试版来袭:果粉先别急着升级,看首批用户怎么说
- saas|芯片发展的死循环
- 无线耳机|号称最强音质?简单说说拜雅Free BYRD费兰朵真无线降噪耳机