返回介绍

7.2 原子更新数组

发布于 2024-08-18 10:09:30 字数 975 浏览 0 评论 0 收藏 0

通过原子的方式更新数组里的某个元素,Atomic包提供了以下4个类。

AtomicIntegerArray:原子更新整型数组里的元素。

AtomicLongArray:原子更新长整型数组里的元素。

AtomicReferenceArray:原子更新引用类型数组里的元素。

AtomicIntegerArray类主要是提供原子的方式更新数组里的整型,其常用方法如下。

int addAndGet(int i,int delta):以原子方式将输入值与数组中索引i的元素相加。

boolean compareAndSet(int i,int expect,int update):如果当前值等于预期值,则以原子方式将数组位置i的元素设置成update值。

以上几个类提供的方法几乎一样,所以本节仅以AtomicIntegerArray为例进行讲解,AtomicIntegerArray的使用实例代码如代码清单7-4所示。

代码清单7-4 AtomicIntegerArrayTest.java

public class AtomicIntegerArrayTest {
  static int[] value = new int[] { 1, 2 };
  static AtomicIntegerArray ai = new AtomicIntegerArray(value);
  public static void main(String[] args) {
    ai.getAndSet(0, 3);
    System.out.println(ai.get(0));
    System.out.println(value[0]);
  }
}

以下是输出的结果。

3
1

需要注意的是,数组value通过构造方法传递进去,然后AtomicIntegerArray会将当前数组复制一份,所以当AtomicIntegerArray对内部的数组元素进行修改时,不会影响传入的数组。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文