您的位置:首页 > 编程语言 > Java开发

高并发编程-07-JDK提供的原子类操作及原理

2018-01-13 09:18 399 查看
1,原子类介绍:针对数据类型的操作,JDK提供的原子类来方便我们的线程安全控制。所有的类保存在 java.util.concurrent.atomic 包中基本数据类型 AtomicInteger数组类型 AtomicIntegerArray2,举个使用的例子:解决之前的 i++ 安全性问题如何解决?AtomicInteger count = new AtomicInteger(0);count.incrementAndGet();//相当于count++,区别是这里可以保证是原子操作3,原理:内部的原理是采用了CAS机制,大家可以通过观察源码就可以发现那么什么是CAS机制?CAS有人翻译为Compare And Set或Compare And Swap都是正确的。在多线程并发执行的状态下,锁的状态改变,基本都是使用CAS原理,它有一个比较别扭的叫法“CPU硬件同步原语”,算法是基于CPU硬件的,原子性操作,不会被其他线程打断。CAS的算法,比较当前值和期望的值是否相等,如果相等,则将当前值赋予一个新值。再比如修改一个Boolean的类型的变量的值,我们也可以采用private AtomicBoolean atomicBoolean = new AtomicBoolean(false);public void lock(){ //期望是false,如果是false,则可以修改为true atomicBoolean.compareAndSet(false, true);}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  原子性 Lock CAS