AtomicLong accumulateAndGet() method in Java with Examples

Last Updated : 4 Feb, 2021

The Java.AtomicLong.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 a long as its parameter and an object of LongBinaryOperator interface and applies the operation specified in the object to the values. It returns the updated value.

Syntax:  

public final long accumulateAndGet(long y, 
              LongBinaryOperator function)

Parameters: This method accepts as parameter a long value y and an LongBinaryOperator 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
// AtomicLong accumulateAndGet() method

import java.util.concurrent.atomic.AtomicLong;
import java.util.function.LongBinaryOperator;

public class Demo {
    public static void main(String[] args)
    {
        // AtomicLong initialized with a value of 555
        AtomicLong atomicLong = new AtomicLong(555);

        // Binary operator defined
        // to calculate the product
        LongBinaryOperator binaryOperator
            = (x, y) -> x * y;

        System.out.println("Initial Value is "
                           + atomicLong);

        // Function called and the binary operator
        // is passed as an argument
        long value
            = atomicLong
                  .accumulateAndGet(555, binaryOperator);
        System.out.println("Updated value is "
                           + value);
    }
}

Output: 
Initial Value is 555
Updated value is 308025

 

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

Comment