The java.util.concurrent.atomic.AtomicInteger.addandget() is an inbuilt method in java which adds the value which is passed in the parameter of the function to the previous value and returns the new updated value which is of data-type int. Syntax:
public final int addAndGet(int val)
Parameters: The function accepts a single mandatory parameter val which specifies the value to be added. Return value: The function returns the integer value after addition is done. Program below demonstrates the function: Program 1:
Java
// Java Program to demonstrates // the addandget() function import java.util.concurrent.atomic.AtomicInteger; public class GFG { public static void main(String args[]) { // Initially value as 0 AtomicInteger val = new AtomicInteger(); // Update the value int c = val.addAndGet( 6 ); // Prints the updated value System.out.println("Updated value: " + c); } } |
Updated value: 6
Program 2:
Java
// Java Program to demonstrates // the addandget() function import java.util.concurrent.atomic.AtomicInteger; public class GFG { public static void main(String args[]) { // Initially value as 18 AtomicInteger val = new AtomicInteger( 18 ); // Prints the updated value System.out.println("Previous value: " + val); // adds the value to 18 val.addAndGet( 6 ); // Prints the updated value System.out.println("Updated value: " + val); } } |
Previous value: 18 Updated value: 24
Program 3:
Java
/*package whatever //do not write package name here */ import java.io.*; import java.util.concurrent.atomic.AtomicInteger; class GFG { public static void main(String[] args) throws InterruptedException { AtomicInteger count = new AtomicInteger( 0 ); Thread thread1 = new Thread(() -> { for ( int i = 0 ; i < 1000 ; i++) { count.incrementAndGet(); } }); Thread thread2 = new Thread(() -> { for ( int i = 0 ; i < 1000 ; i++) { count.incrementAndGet(); } }); thread1.start(); thread2.start(); thread1.join(); thread2.join(); System.out.println( "Final count: " + count.get()); } } |
Final count: 2000