This threadsafe class holds an
int value. It extends
java.lang.Number, but unlike the
Integer class, it is mutable. Access the
int value with the get( )
method and the various methods inherited from
Number. You can set the value with the
set( ) method or through various atomic methods.
In addition to the basic compareAndSet( ) and
weakCompareAndSet( ) methods, this class defines
methods for atomic pre-increment, post-increment, pre-decrement and
post-decrement operations as well as generalized addAndGet(
) and getAndAdd( ) methods.
addAndGet( ) atomically adds the specified amount
to the stored value and returns the new value. getAndAdd(
) atomically returns the current value and then adds the
specified amount to it.
Figure 16-98. java.util.concurrent.atomic.AtomicInteger
public class
AtomicInteger extends Number implements Serializable {
// Public Constructors
public
AtomicInteger ( );
public
AtomicInteger (int
initialValue );
// Public Instance Methods
public final int
addAndGet (int
delta );
public final boolean
compareAndSet (int
expect , int
update );
public final int
decrementAndGet ( );
public final int
get ( );
public final int
getAndAdd (int
delta );
public final int
getAndDecrement ( ); default:0
public final int
getAndIncrement ( ); default:-1
public final int
getAndSet (int
newValue );
public final int
incrementAndGet ( );
public final void
set (int
newValue );
public final boolean
weakCompareAndSet (int
expect , int
update );
// Public Methods Overriding Number
public double
doubleValue ( );
public float
floatValue ( );
public int
intValue ( );
public long
longValue ( );
// Public Methods Overriding Object
public String
toString ( );
}