Java中的AtomicInteger accumulateAndGet()方法及示例

Java中的AtomicInteger accumulateAndGet()方法及示例

Java.AtomicInteger.accumulateAndGet() 方法是一个内置的方法,它通过对当前值和作为参数传递的值应用指定的操作来更新对象的当前值。它接收一个整数作为其参数和一个IntBinaryOperator接口的对象,并将该对象中指定的操作应用于这些值。它返回更新后的值。

语法

public final int accumulateAndGet(int y, 
             IntBinaryOperator function)

参数: 该方法接受一个整数值 y 和一个IntBinaryOperator 函数 作为参数。它将给定的函数应用于对象的当前值和值y。

返回值: 该函数返回当前对象的更新值。

演示该函数的例子

// Java program to demonstrate
// AtomicInteger accumulateAndGet() method
 
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.IntBinaryOperator;
 
public class Demo {
    public static void main(String[] args)
    {
        new UserThread("Thread A");
        new UserThread("Thread B");
    }
}
 
class Shared {
    static AtomicInteger ai = new AtomicInteger(0);
}
 
class UserThread implements Runnable {
    String name;
    UserThread(String name)
    {
        this.name = name;
        new Thread(this).start();
    }
    IntBinaryOperator ibo = (x, y) -> (x + y);
    int value = 5;
    @Override
    public void run()
    {
        for (int i = 0; i < 3; i++) {
            int ans = Shared.ai
                          .accumulateAndGet(value, ibo);
            System.out.println(name + " " + ans);
        }
    }
}

输出

Thread A 5
Thread A 10
Thread A 15
Thread B 20
Thread B 25
Thread B 30

参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程