AtomicLongArray原子类
基本概念
- AtomicLongArray的作用: 对长整型的数组进行原子操作
AtomicLongArray函数列表
AtomicLongArray
public AtomicLongArray(int length) {
array = new long[length];
}
public AtomicLongArray(long[] array) {
this.array = array.clone();
}
addAndGet
public long addAndGet(int i, long delta) {
return getAndAdd(i, delta) + delta;
}
compareAndSet
public final boolean compareAndSet(int i, long expect, long update) {
return compareAndSetRaw(checkedByteOffset(i), expect, update);
}
decrementAndGet
public final long decrementAndGet(int i) {
return getAndAdd(i, -1) - 1;
}
get
public final long get(int i) {
return getRaw(checkedByteOffset(i));
}
getAndAdd
public final long getAndAdd(int i, long delta) {
return unsafe.getAndAddLong(array, checkedByteOffset(i), delta);
}
getAndDecrement
public final long getAndDecrement(int i) {
return getAndAdd(i, -1);
}
getAndIncrement
public final long getAndIncrement(int i) {
return getAndAdd(i, 1);
}
getAndSet
public final long getAndSet(int i, long newValue) {
return unsafe.getAndSetLong(array, checkedByteOffset(i), newValue);
}
incrementAndGet
public final long incrementAndGet(int i) {
return getAndAdd(i, 1) + 1;
}
lazySet
public final void lazySet(int i, long newValue) {
unsafe.putOrderedLong(array, checkedByteOffset(i), newValue);
}
length
public final int length() {
return array.length;
}
set
public final void set(int i, long newValue) {
unsafe.putLongVolatile(array, checkedByteOffset(i), newValue);
}
toString
public String toString() {
int iMax = array.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(getRaw(byteOffset(i)));
if (i == iMax)
return b.append(']').toString();
b.append(',').append(' ');
}
}
weakCompareAndSet
public final boolean weakCompareAndSet(int i, long expect, long update) {
return compareAndSet(i, expect, update);
}