【发布时间】:2014-02-01 20:47:07
【问题描述】:
我可以看到 ReentrantLock 比 synchronized 快 50% 左右,AtomicInteger 快 100%。为什么这三种同步方法的执行时间会有如此大的差异:synchronized 块、ReentrantLock 和 AtomicInteger(或 Atomic 包中的任何类)。
除了这些之外,还有其他流行和扩展的同步方法吗?
【问题讨论】:
-
您究竟是如何获得这些性能数据的?由于 JIT 和 GC,Java 中的微基准测试非常棘手。您很容易得到误导性结果。
-
我认为你的意思是
java.util.concurrent包 -
我只是使用
System.nanoTime(),这不是一个详尽的测试,我给出的百分比只是指示性的。 -
除了这些之外,还有其他流行和扩展的同步方法吗? - 是的 - 在 Java 8 中有 StampedLock。
标签: java multithreading concurrency synchronization mutex