📌  相关文章
📜  Java中的 AtomicInteger getAndAccumulate() 方法及示例

📅  最后修改于: 2022-05-13 01:55:25.350000             🧑  作者: Mango

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

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

句法:

public final int getAndAccumulate(int y, 
                   IntBinaryOperator function)

参数:此方法接受两个参数:

  • y :要应用函数的整数。
  • 函数:应用于对象的当前值和值 y 的函数。

返回值:函数返回当前对象的前一个值

示例来演示函数。

// Java program to demonstrate
// working of getAndAccumulate() 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(1);
}
  
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
                      .getAndAccumulate(value, ibo);
  
            System.out.println(name + " "
                               + ans);
        }
    }
}
输出:
Thread A 1
Thread A 5
Thread A 25
Thread B 125
Thread B 625
Thread B 3125

参考: https: Java/util/concurrent/atomic/AtomicInteger.html