Package java.util.concurrent.atomic
Class AtomicIntegerArray
java.lang.Object
java.util.concurrent.atomic.AtomicIntegerArray
- All Implemented Interfaces:
Serializable
public class AtomicIntegerArray extends Object implements Serializable
An
int array in which elements may be updated atomically.
See the java.util.concurrent.atomic package
specification for description of the properties of atomic
variables.- Since:
- 1.5
- Author:
- Doug Lea
- See Also:
- Serialized Form
-
Constructor Summary
Constructors Constructor Description AtomicIntegerArray(int length)Creates a new AtomicIntegerArray of the given length, with all elements initially zero.AtomicIntegerArray(int[] array)Creates a new AtomicIntegerArray with the same length as, and all elements copied from, the given array. -
Method Summary
Modifier and Type Method Description intaddAndGet(int i, int delta)Atomically adds the given value to the element at indexi.booleancompareAndSet(int i, int expect, int update)Atomically sets the element at positionito the given updated value if the current value==the expected value.intdecrementAndGet(int i)Atomically decrements by one the element at indexi.intget(int i)Gets the current value at positioni.intgetAndAdd(int i, int delta)Atomically adds the given value to the element at indexi.intgetAndDecrement(int i)Atomically decrements by one the element at indexi.intgetAndIncrement(int i)Atomically increments by one the element at indexi.intgetAndSet(int i, int newValue)Atomically sets the element at positionito the given value and returns the old value.intincrementAndGet(int i)Atomically increments by one the element at indexi.voidlazySet(int i, int newValue)Eventually sets the element at positionito the given value.intlength()Returns the length of the array.voidset(int i, int newValue)Sets the element at positionito the given value.StringtoString()Returns the String representation of the current values of array.booleanweakCompareAndSet(int i, int expect, int update)Atomically sets the element at positionito the given updated value if the current value==the expected value.
-
Constructor Details
-
AtomicIntegerArray
public AtomicIntegerArray(int length)Creates a new AtomicIntegerArray of the given length, with all elements initially zero.- Parameters:
length- the length of the array
-
AtomicIntegerArray
public AtomicIntegerArray(int[] array)Creates a new AtomicIntegerArray with the same length as, and all elements copied from, the given array.- Parameters:
array- the array to copy elements from- Throws:
NullPointerException- if array is null
-
-
Method Details
-
length
public final int length()Returns the length of the array.- Returns:
- the length of the array
-
get
public final int get(int i)Gets the current value at positioni.- Parameters:
i- the index- Returns:
- the current value
-
set
public final void set(int i, int newValue)Sets the element at positionito the given value.- Parameters:
i- the indexnewValue- the new value
-
lazySet
public final void lazySet(int i, int newValue)Eventually sets the element at positionito the given value.- Parameters:
i- the indexnewValue- the new value- Since:
- 1.6
-
getAndSet
public final int getAndSet(int i, int newValue)Atomically sets the element at positionito the given value and returns the old value.- Parameters:
i- the indexnewValue- the new value- Returns:
- the previous value
-
compareAndSet
public final boolean compareAndSet(int i, int expect, int update)Atomically sets the element at positionito the given updated value if the current value==the expected value.- Parameters:
i- the indexexpect- the expected valueupdate- the new value- Returns:
- true if successful. False return indicates that the actual value was not equal to the expected value.
-
weakCompareAndSet
public final boolean weakCompareAndSet(int i, int expect, int update)Atomically sets the element at positionito the given updated value if the current value==the expected value.May fail spuriously and does not provide ordering guarantees, so is only rarely an appropriate alternative to
compareAndSet.- Parameters:
i- the indexexpect- the expected valueupdate- the new value- Returns:
- true if successful
-
getAndIncrement
public final int getAndIncrement(int i)Atomically increments by one the element at indexi.- Parameters:
i- the index- Returns:
- the previous value
-
getAndDecrement
public final int getAndDecrement(int i)Atomically decrements by one the element at indexi.- Parameters:
i- the index- Returns:
- the previous value
-
getAndAdd
public final int getAndAdd(int i, int delta)Atomically adds the given value to the element at indexi.- Parameters:
i- the indexdelta- the value to add- Returns:
- the previous value
-
incrementAndGet
public final int incrementAndGet(int i)Atomically increments by one the element at indexi.- Parameters:
i- the index- Returns:
- the updated value
-
decrementAndGet
public final int decrementAndGet(int i)Atomically decrements by one the element at indexi.- Parameters:
i- the index- Returns:
- the updated value
-
addAndGet
public final int addAndGet(int i, int delta)Atomically adds the given value to the element at indexi.- Parameters:
i- the indexdelta- the value to add- Returns:
- the updated value
-
toString
Returns the String representation of the current values of array.
-