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
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Quick ad hoc JMH run against one benchmark class. Example:
# ./scripts/run.sh IncrementBenchmark -t 8
set -euo pipefail
cd "$(dirname "$0")/.."
BENCH="${1:?Usage: run.sh <BenchmarkClassName> [extra jmh args]}"
shift || true
JAR=target/benchmarks.jar
[ -f "$JAR" ] || { echo "Run 'mvn package' first."; exit 1; }
java -jar "$JAR" "$BENCH" "$@"