AtomicInteger accumulateAndGet() method in Java with Examples

Last Updated : 4 Feb, 2021

The Java.AtomicInteger.accumulateAndGet() method is an inbuilt method, which updates the current value of the object by applying the specified operation on the current value and value passed as a parameter. It takes an integer as its parameter and an object of IntBinaryOperator interface and applies the operation specified in the object to the values. It returns the updated value.

Syntax: 

public final int accumulateAndGet(int y, 
             IntBinaryOperator function)

Parameters: This method accepts as parameter an integer value y and an IntBinaryOperator function. It applies the given function to the current value of the object and the value y.

Return Value: The function returns the updated value of the current object.

Example to demonstrate the function. 

Java
// 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);
        }
    }
}

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

 

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html
 

Comment