📅  最后修改于: 2023-12-03 14:42:43.978000             🧑  作者: Mango
在多线程并发的环境下,通常我们需要使用原子操作,以保证线程安全和数据的正确性。Java中提供了AtomicLong类,用于对long类型进行原子操作。
其中,addAndGet()方法可以原子性地将参数和AtomicLong的值相加,并返回相加后的结果。
下面是一个示例:
import java.util.concurrent.atomic.AtomicLong;
public class Example {
private static AtomicLong counter = new AtomicLong();
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
new Thread(() -> {
long result = counter.addAndGet(1);
System.out.println(result);
}).start();
}
}
}
在这个示例中,我们创建了一个AtomicLong对象counter,并将其初始值设为0。然后,创建了10个线程,每个线程调用addAndGet()方法将1加到counter的值上,并输出相加后的结果。
由于addAndGet()方法是原子性的,所以即使有多个线程同时调用该方法,也不会出现竞态条件,从而保证计数器的正确性。
输出结果如下:
1
2
3
4
5
6
7
8
9
10
可以看到,每个线程成功地将1加到了计数器的值上,而没有发生错误。
以上就是Java中的AtomicLong addAndGet()方法及示例介绍,希望能对你的学习有所帮助。