文章基于jdk1.7,通过学习《Java并发编程的艺术》,对Java原子操作的理解
通过原子的方式更新数组中的某个元素,Atomic包提供了以下3个类。
- AtomicIntegerArray:原子更新整型数组里的元素。
- AtomicLongArray :原子更新长整型数组里的元素。
- AtomicReferenceArray:原子更新引用类型数组里的元素。
AtomicIntegerArray类常用方法如下:
- int addAndGet(int i,int delta):以原子方式将输入值与数组中索引 i 的元素相加
- boolean compareAndSet(int i,int expect,int update):如果当前值等于预期值,则以原子方式将数组位置i的元素设置成update值.
AtomicIntegerArray示例如下:
1 | import java.util.concurrent.atomic.AtomicIntegerArray; |
结果如下:
1 | ---------------getAndSet--------------- |
值得注意的是,数组value通过构造方法传递进去,然后AtomicIntegerArray会将当前数组复制一份,所以当AtomicIntegerArray对内部的数组元素进行修改时,不会影响传入的数组。
欢迎关注我的公众号~ 搜索公众号: 翻身码农把歌唱 或者 扫描下方二维码: