本文整理匯總了Java中java.util.concurrent.atomic.AtomicLongFieldUpdater.set方法的典型用法代碼示例。如果您正苦於以下問題:Java AtomicLongFieldUpdater.set方法的具體用法?Java AtomicLongFieldUpdater.set怎麽用?Java AtomicLongFieldUpdater.set使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類java.util.concurrent.atomic.AtomicLongFieldUpdater
的用法示例。
在下文中一共展示了AtomicLongFieldUpdater.set方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: testGetSet
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* get returns the last value set or assigned
*/
public void testGetSet() {
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a;
a = updaterFor("x");
x = 1;
assertEquals(1, a.get(this));
a.set(this, 2);
assertEquals(2, a.get(this));
a.set(this, -3);
assertEquals(-3, a.get(this));
}
示例2: testGetAndIncrement
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* getAndIncrement returns previous value and increments
*/
public void testGetAndIncrement() {
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a;
a = updaterFor("x");
x = 1;
assertEquals(1, a.getAndIncrement(this));
assertEquals(2, a.get(this));
a.set(this, -2);
assertEquals(-2, a.getAndIncrement(this));
assertEquals(-1, a.getAndIncrement(this));
assertEquals(0, a.getAndIncrement(this));
assertEquals(1, a.get(this));
}
示例3: testIncrementAndGet
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* incrementAndGet increments and returns current value
*/
public void testIncrementAndGet() {
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a;
a = updaterFor("x");
x = 1;
assertEquals(2, a.incrementAndGet(this));
assertEquals(2, a.get(this));
a.set(this, -2);
assertEquals(-1, a.incrementAndGet(this));
assertEquals(0, a.incrementAndGet(this));
assertEquals(1, a.incrementAndGet(this));
assertEquals(1, a.get(this));
}
示例4: testLongFieldUpdaterGetAndUpdate
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* AtomicLongFieldUpdater getAndUpdate returns previous value and updates
* result of supplied function
*/
public void testLongFieldUpdaterGetAndUpdate() {
AtomicLongFieldUpdater a = aLongFieldUpdater();
a.set(this, 1);
assertEquals(1L, a.getAndUpdate(this, Atomic8Test::addLong17));
assertEquals(18L, a.getAndUpdate(this, Atomic8Test::addLong17));
assertEquals(35L, a.get(this));
assertEquals(35L, aLongField);
}
示例5: testLongFieldUpdaterUpdateAndGet
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* AtomicLongFieldUpdater updateAndGet updates with supplied function and
* returns result.
*/
public void testLongFieldUpdaterUpdateAndGet() {
AtomicLongFieldUpdater a = aLongFieldUpdater();
a.set(this, 1);
assertEquals(18L, a.updateAndGet(this, Atomic8Test::addLong17));
assertEquals(35L, a.updateAndGet(this, Atomic8Test::addLong17));
assertEquals(35L, a.get(this));
assertEquals(35L, aLongField);
}
示例6: testLongFieldUpdaterGetAndAccumulate
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* AtomicLongFieldUpdater getAndAccumulate returns previous value
* and updates with supplied function.
*/
public void testLongFieldUpdaterGetAndAccumulate() {
AtomicLongFieldUpdater a = aLongFieldUpdater();
a.set(this, 1);
assertEquals(1L, a.getAndAccumulate(this, 2L, Long::sum));
assertEquals(3L, a.getAndAccumulate(this, 3L, Long::sum));
assertEquals(6L, a.get(this));
assertEquals(6L, aLongField);
}
示例7: testLongFieldUpdaterAccumulateAndGet
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* AtomicLongFieldUpdater accumulateAndGet updates with supplied
* function and returns result.
*/
public void testLongFieldUpdaterAccumulateAndGet() {
AtomicLongFieldUpdater a = aLongFieldUpdater();
a.set(this, 1);
assertEquals(7L, a.accumulateAndGet(this, 6L, Long::sum));
assertEquals(10L, a.accumulateAndGet(this, 3L, Long::sum));
assertEquals(10L, a.get(this));
assertEquals(10L, aLongField);
}
示例8: testFieldUpdaters_ClassCastException
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
/**
* Object arguments for parameters of type T that are not
* instances of the class passed to the newUpdater call will
* result in a ClassCastException being thrown.
*/
public void testFieldUpdaters_ClassCastException() {
// Use raw types to allow passing wrong object type, provoking CCE
final AtomicLongFieldUpdater longUpdater = aLongFieldUpdater();
final AtomicIntegerFieldUpdater intUpdater = anIntFieldUpdater();
final AtomicReferenceFieldUpdater refUpdater = anIntegerFieldUpdater();
final Object obj = new Object();
for (Object x : new Object[]{ new Object(), null }) {
Runnable[] throwingActions = {
() -> longUpdater.get(x),
() -> intUpdater.get(x),
() -> refUpdater.get(x),
() -> longUpdater.set(x, 17L),
() -> intUpdater.set(x, 17),
() -> refUpdater.set(x, (Integer) 17),
() -> longUpdater.addAndGet(x, 17L),
() -> intUpdater.addAndGet(x, 17),
() -> longUpdater.getAndUpdate(x, y -> y),
() -> intUpdater.getAndUpdate(x, y -> y),
() -> refUpdater.getAndUpdate(x, y -> y),
() -> longUpdater.compareAndSet(x, 17L, 42L),
() -> intUpdater.compareAndSet(x, 17, 42),
() -> refUpdater.compareAndSet(x, (Integer) 17, (Integer) 42),
};
assertThrows(ClassCastException.class, throwingActions);
}
}
示例9: should_pass_if_atomicLongFieldUpdater_contains_expected_value
import java.util.concurrent.atomic.AtomicLongFieldUpdater; //導入方法依賴的package包/類
@Test
public void should_pass_if_atomicLongFieldUpdater_contains_expected_value() throws Exception {
AtomicLongFieldUpdater<Person> fieldUpdater = AtomicLongFieldUpdater.newUpdater(Person.class, "age");
fieldUpdater.set(person, 25);
assertThat(fieldUpdater).hasValue(25L, person);
}