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);         }     } } |
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
Â