AtomicLong/LongAdder/VarHandle counters benchmarked against the synchronized and ReentrantLock baselines from the locks module, a deterministic ABA race against a hand-rolled Treiber stack plus the AtomicStampedReference fix, and a VarHandle access-modes demo (plain/opaque/acquire-release/volatile). Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01FhzLY5p6okFva3qsnsRyvM
8 lines
341 B
Plaintext
8 lines
341 B
Plaintext
$ java -cp target/classes com.ankurm.atomics.VarHandleAccessModesDemo
|
|
|
|
plain set(1) / get() -> 1
|
|
setOpaque(2) / getOpaque() -> 2
|
|
setRelease(3) / getAcquire() -> 3
|
|
setVolatile(4) / getVolatile() -> 4
|
|
compareAndSet(4, 5) succeeded -> true, second compareAndSet(4, 6) succeeded -> false (expected false - value is 5, not 4, by the second call)
|