Choose the decision supported by each Java concurrency contract.
Read the lessons
- Java ConcurrentHashMap.computeIfAbsent: create a counter once per key
- Java ConcurrentSkipListMap: inspect an ordered time window
- Java CopyOnWriteArrayList: dispatch against a listener snapshot
- Java AtomicReference: publish one immutable map snapshot
- Java DelayQueue: release retry work only after its deadline
- Java Exchanger: swap buffers at a two-party rendezvous
- Java LinkedTransferQueue: wait until a consumer receives work
- Java LongAccumulator: track a concurrent high-water mark
- Java ThreadLocal: restore request context when a pooled thread is reused
- Java LockSupport: park only inside a checked condition loop
Common Mistakes
Do not call a moving metric a transaction or a consumer handoff a completed job.
