1 |
|
/* |
2 |
|
* Written by Doug Lea with assistance from members of JCP JSR-166 |
3 |
|
* Expert Group and released to the public domain, as explained at |
4 |
< |
* http://creativecommons.org/licenses/publicdomain |
4 |
> |
* http://creativecommons.org/publicdomain/zero/1.0/ |
5 |
|
* Other contributors include Andrew Wright, Jeffrey Hayes, |
6 |
|
* Pat Fisher, Mike Judd. |
7 |
|
*/ |
8 |
|
|
9 |
– |
import java.util.concurrent.atomic.*; |
9 |
|
import junit.framework.*; |
10 |
< |
import java.util.*; |
10 |
> |
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; |
11 |
|
|
12 |
|
public class AtomicIntegerFieldUpdaterTest extends JSR166TestCase { |
13 |
|
volatile int x = 0; |
57 |
|
} |
58 |
|
|
59 |
|
/** |
60 |
< |
* get returns the last value set or assigned |
60 |
> |
* get returns the last value set or assigned |
61 |
|
*/ |
62 |
|
public void testGetSet() { |
63 |
|
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a; |
72 |
|
assertEquals(2,a.get(this)); |
73 |
|
a.set(this,-3); |
74 |
|
assertEquals(-3,a.get(this)); |
76 |
– |
|
75 |
|
} |
76 |
|
|
77 |
|
/** |
78 |
< |
* get returns the last value lazySet by same thread |
78 |
> |
* get returns the last value lazySet by same thread |
79 |
|
*/ |
80 |
|
public void testGetLazySet() { |
81 |
|
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a; |
90 |
|
assertEquals(2,a.get(this)); |
91 |
|
a.lazySet(this,-3); |
92 |
|
assertEquals(-3,a.get(this)); |
95 |
– |
|
93 |
|
} |
94 |
|
|
95 |
|
/** |
107 |
|
assertTrue(a.compareAndSet(this,2,-4)); |
108 |
|
assertEquals(-4,a.get(this)); |
109 |
|
assertFalse(a.compareAndSet(this,-5,7)); |
110 |
< |
assertFalse((7 == a.get(this))); |
110 |
> |
assertEquals(-4,a.get(this)); |
111 |
|
assertTrue(a.compareAndSet(this,-4,7)); |
112 |
|
assertEquals(7,a.get(this)); |
113 |
|
} |
114 |
|
|
118 |
– |
|
115 |
|
/** |
116 |
|
* compareAndSet in one thread enables another waiting for value |
117 |
|
* to succeed |
158 |
|
} |
159 |
|
|
160 |
|
/** |
161 |
< |
* getAndSet returns previous value and sets to given value |
161 |
> |
* getAndSet returns previous value and sets to given value |
162 |
|
*/ |
163 |
|
public void testGetAndSet() { |
164 |
|
AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a; |