# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Ctors | Methods | Inherited Methods

# AtomicStampedReference

`public class AtomicStampedReference`
`extends Object` ``

java.lang.Object
↳ | java.util.concurrent.atomic.AtomicStampedReference<V>

An `AtomicStampedReference` maintains an object reference along with an integer "stamp", that can be updated atomically.

Implementation note: This implementation maintains stamped references by creating internal objects representing "boxed" [reference, integer] pairs.

## Summary

### Public constructors
`AtomicStampedReference(V initialRef, int initialStamp)` Creates a new `AtomicStampedReference` with the given initial values.

### Public methods
`boolean` | `attemptStamp(V expectedReference, int newStamp)` Atomically sets the value of the stamp to the given update value if the current reference is `==` to the expected reference.
`boolean` | `compareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)` Atomically sets the value of both the reference and stamp to the given update values if the current reference is `==` to the expected reference and the current stamp is equal to the expected stamp.
`V` | `get(int[] stampHolder)` Returns the current values of both the reference and the stamp.
`V` | `getReference()` Returns the current value of the reference.
`int` | `getStamp()` Returns the current value of the stamp.
`void` | `set(V newReference, int newStamp)` Unconditionally sets the value of both the reference and stamp.
`boolean` | `weakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)` Atomically sets the value of both the reference and stamp to the given update values if the current reference is `==` to the expected reference and the current stamp is equal to the expected stamp.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Public constructors

### AtomicStampedReference

    public AtomicStampedReference (V initialRef,
                    int initialStamp)

Creates a new `AtomicStampedReference` with the given initial values.

Parameters
`initialRef` | `V`: the initial reference
`initialStamp` | `int`: the initial stamp

## Public methods

### attemptStamp

    public boolean attemptStamp (V expectedReference,
                    int newStamp)

Atomically sets the value of the stamp to the given update value if the current reference is `==` to the expected reference. Any given invocation of this operation may fail (return `false`) spuriously, but repeated invocation when the current value holds the expected value and no other thread is also attempting to set the value will eventually succeed.

Parameters
`expectedReference` | `V`: the expected value of the reference
`newStamp` | `int`: the new value for the stamp

Returns
`boolean` | `true` if successful

### compareAndSet

    public boolean compareAndSet (V expectedReference,
                    V newReference,
                    int expectedStamp,
                    int newStamp)

Atomically sets the value of both the reference and stamp to the given update values if the current reference is `==` to the expected reference and the current stamp is equal to the expected stamp.

Parameters
`expectedReference` | `V`: the expected value of the reference
`newReference` | `V`: the new value for the reference
`expectedStamp` | `int`: the expected value of the stamp
`newStamp` | `int`: the new value for the stamp

Returns
`boolean` | `true` if successful

### get

    public V get (int[] stampHolder)

Returns the current values of both the reference and the stamp. Typical usage is `int[1] holder; ref = v.get(holder);` .

Parameters
`stampHolder` | `int`: an array of size of at least one. On return, `stampHolder[0]` will hold the value of the stamp.

Returns
`V` | the current value of the reference

### getReference

    public V getReference ()

Returns the current value of the reference.

Returns
`V` | the current value of the reference

### getStamp

    public int getStamp ()

Returns the current value of the stamp.

Returns
`int` | the current value of the stamp

### set

    public void set (V newReference,
                    int newStamp)

Unconditionally sets the value of both the reference and stamp.

Parameters
`newReference` | `V`: the new value for the reference
`newStamp` | `int`: the new value for the stamp

### weakCompareAndSet

    public boolean weakCompareAndSet (V expectedReference,
                    V newReference,
                    int expectedStamp,
                    int newStamp)

Atomically sets the value of both the reference and stamp to the given update values if the current reference is `==` to the expected reference and the current stamp is equal to the expected stamp.

May fail spuriously and does not provide ordering guarantees, so is only rarely an appropriate alternative to `compareAndSet`.

Parameters
`expectedReference` | `V`: the expected value of the reference
`newReference` | `V`: the new value for the reference
`expectedStamp` | `int`: the expected value of the stamp
`newStamp` | `int`: the new value for the stamp

Returns
`boolean` | `true` if successful

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*