Benchmark for LongAddr - http://concurrencyfreaks.blogspot.hk/2013/09/longadder-and-dclc.html If there is a concern about wasting too many memory for Atomic* wrapper class, we may consider changed to use AtomicFieldUpdater to update primitive directly - http://normanmaurer.me/blog/2013/10/28/Lesser-known-concurrent-classes-Part-1/ What exactly is 'tearing'? - https://www.reddit.com/r/java/comments/rsr8az/what_exactly_is_tearing/