LongAdder的性能如何优于AtomicLong
我看到Java的AtomicInteger如何在内部与CAS(Compare And Swap)操作一起工作。基本上,当多个线程尝试更新值时,JVM 在内部使用底层 CAS 机制并尝试更新值。如果更新失败,请使用新值重试,但永远不会阻止。
在Java8中,Oracle引入了一个新的Class LongAdder,在高争用的情况下,它似乎比AtomicInteger表现得更好。一些博客文章声称,LongAdder通过维护内部单元格的性能更好 - 这是否意味着LongAdder在内部聚合值并在以后更新?你能帮我了解LongAdder是如何工作的吗?