下面列出了java.util.concurrent.atomic.AtomicLongFieldUpdater#weakCompareAndSet() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* repeated weakCompareAndSet succeeds in changing value when equal
* to expected
*/
public void testWeakCompareAndSet() {
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a;
a = updaterFor("x");
x = 1;
do {} while (!a.weakCompareAndSet(this, 1, 2));
do {} while (!a.weakCompareAndSet(this, 2, -4));
assertEquals(-4, a.get(this));
do {} while (!a.weakCompareAndSet(this, -4, 7));
assertEquals(7, a.get(this));
}
/**
* repeated weakCompareAndSet succeeds in changing value when equal
* to expected
*/
public void testWeakCompareAndSet() {
AtomicLongFieldUpdater<AtomicLongFieldUpdaterTest> a;
a = updaterFor("x");
x = 1;
do {} while (!a.weakCompareAndSet(this, 1, 2));
do {} while (!a.weakCompareAndSet(this, 2, -4));
assertEquals(-4, a.get(this));
do {} while (!a.weakCompareAndSet(this, -4, 7));
assertEquals(7, a.get(this));
}