atomics: Java Atomics and VarHandle companion code

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
This commit is contained in:
2026-09-30 06:23:03 +00:00
co-authored by Claude Sonnet 5
parent 32b8067ecf
commit ff183da163
21 changed files with 845 additions and 0 deletions
@@ -0,0 +1,7 @@
$ 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)