本文整理汇总了Java中java.util.concurrent.atomic.AtomicIntegerFieldUpdater.set方法的典型用法代码示例。如果您正苦于以下问题:Java AtomicIntegerFieldUpdater.set方法的具体用法?Java AtomicIntegerFieldUpdater.set怎么用?Java AtomicIntegerFieldUpdater.set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.util.concurrent.atomic.AtomicIntegerFieldUpdater
的用法示例。
在下文中一共展示了AtomicIntegerFieldUpdater.set方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testIntegerFieldUpdaterGetAndUpdate
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* AtomicIntegerFieldUpdater getAndUpdate returns previous value and updates
* result of supplied function
*/
public void testIntegerFieldUpdaterGetAndUpdate() {
AtomicIntegerFieldUpdater a = anIntFieldUpdater();
a.set(this, 1);
assertEquals(1, a.getAndUpdate(this, Atomic8Test::addInt17));
assertEquals(18, a.getAndUpdate(this, Atomic8Test::addInt17));
assertEquals(35, a.get(this));
assertEquals(35, anIntField);
}
示例2: testIntegerFieldUpdaterUpdateAndGet
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* AtomicIntegerFieldUpdater updateAndGet updates with supplied function and
* returns result.
*/
public void testIntegerFieldUpdaterUpdateAndGet() {
AtomicIntegerFieldUpdater a = anIntFieldUpdater();
a.set(this, 1);
assertEquals(18, a.updateAndGet(this, Atomic8Test::addInt17));
assertEquals(35, a.updateAndGet(this, Atomic8Test::addInt17));
assertEquals(35, a.get(this));
assertEquals(35, anIntField);
}
示例3: testIntegerFieldUpdaterGetAndAccumulate
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* AtomicIntegerFieldUpdater getAndAccumulate returns previous value
* and updates with supplied function.
*/
public void testIntegerFieldUpdaterGetAndAccumulate() {
AtomicIntegerFieldUpdater a = anIntFieldUpdater();
a.set(this, 1);
assertEquals(1, a.getAndAccumulate(this, 2, Integer::sum));
assertEquals(3, a.getAndAccumulate(this, 3, Integer::sum));
assertEquals(6, a.get(this));
assertEquals(6, anIntField);
}
示例4: testIntegerFieldUpdaterAccumulateAndGet
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* AtomicIntegerFieldUpdater accumulateAndGet updates with supplied
* function and returns result.
*/
public void testIntegerFieldUpdaterAccumulateAndGet() {
AtomicIntegerFieldUpdater a = anIntFieldUpdater();
a.set(this, 1);
assertEquals(7, a.accumulateAndGet(this, 6, Integer::sum));
assertEquals(10, a.accumulateAndGet(this, 3, Integer::sum));
assertEquals(10, a.get(this));
assertEquals(10, anIntField);
}
示例5: testFieldUpdaters_ClassCastException
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的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);
}
}
示例6: testGetSet
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* get returns the last value set or assigned
*/
public void testGetSet() {
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> 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));
}
示例7: testGetAndIncrement
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* getAndIncrement returns previous value and increments
*/
public void testGetAndIncrement() {
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> 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));
}
示例8: testIncrementAndGet
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
/**
* incrementAndGet increments and returns current value
*/
public void testIncrementAndGet() {
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> 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));
}
示例9: should_pass_if_atomicIntegerFieldUpdater_contains_expected_value
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; //导入方法依赖的package包/类
@Test
public void should_pass_if_atomicIntegerFieldUpdater_contains_expected_value() throws Exception {
AtomicIntegerFieldUpdater<Person> fieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Person.class, "age");
fieldUpdater.set(person, 25);
assertThat(fieldUpdater).hasValue(25, person);
}