What is the AtomicLong.decrementAndGet() method in Java?

AtomicLong represents a long value that may be updated atomically.

Atomic operation is performing a single unit of work on a resource. During that operation, no other operations are allowed on the same resource until the performing operation is finished.

The AtomicLong is present in the java.util.concurrent.atomic package.

The decrementAndGet method of the AtomicLong atomically decrements the current value by one and returns the updated value of the AtomicLong object.

Syntax

public final long decrementAndGet()

Parameter

This method doesn’t take any argument.

Return value

This method returns the decremented value as a long value.

Code

The code below demonstrates how to use the decrementAndGet method:

import java.util.concurrent.atomic.AtomicLong;
class DecrementAndGet{
public static void main(String[] args) {
// initial value is 10
AtomicLong atomicLong = new AtomicLong(10);
System.out.println("The initial value in the AtomicLong object is: " + atomicLong.get());
// Calling atomicLong.decrementAndGet()
long val = atomicLong.decrementAndGet();
// updated value will be 9
System.out.println("The new value in the AtomicLong object is: " + val);
}
}

Explanation

Line 1: We import the AtomicLong class.

Line 5: We create a new object for the AtomicLong class with the name atomicLong and with the value 10.

Line 10: We call the decrementAndGet method. This method decrements the current value(10) by 1 and returns the new value(9).

Free Resources