在jdk1.8中cas+synchronized与segment相比的好处是什么?
时间: 2023-06-08 18:05:24 浏览: 108
ConcurrentHashMap的实现原理(JDK1.7和JDK1.8).pdf
在 JDK1.8 中,使用 CAS(Compare And Swap)和 synchronized(锁)机制实现并发同步。相比于 JDK1.7 中使用的 Segment 机制,CAS 和 synchronized 在性能和并发度上都有所提高。
具体来说,CAS 操作相当于一个乐观锁,当进行操作时,先比较当前内存值是否和预期值相等,如果相等则进行操作,否则不进行操作。这避免了竞争和阻塞,提高了并发度。而 synchronized 在加锁时会阻塞其他的线程,降低了并发度。此外,CAS 操作在执行时也更加轻量级,性能更优。
另外,JDK1.8 中的 ConcurrentHashMap 通过分段锁,从而减少了对全局锁的依赖,也提高了并发度和性能。而在 JDK1.7 中的 ConcurrentHashMap 使用的是 Segment 机制,需要对每个 Segment 加锁,带来了一定的性能损失。
阅读全文