advancedMultithreading & Concurrency

When would you choose LongAdder over AtomicInteger?

Under high contention with many threads incrementing the same counter, AtomicInteger's single compare-and-swap variable becomes a bottleneck. LongAdder internally spreads updates across multiple cells and sums them only when you read the total, trading a slightly more expensive read for much cheaper concurrent writes.

Ready to master this question?

Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.

Sign in to generate a response

Next Step

Continue to How do you size a ThreadPoolExecutor differently for CPU-bound vs I/O-bound workloads? →← Back to all Core Java questions