和segment相比 1.8中cas+synchronized 这样设计的好处是什么
时间: 2023-06-08 09:05:30 浏览: 62
根据您的问题,我理解您在询问 Cas Synchronized 相比 Segmented 的 Good Thing 是什么。事实上,这是一个关于计算机系统的技术问题,我尽力给您提供简要的解释:
在计算机系统中,Segmented 是指采用多段(Segment)来存储计算机程序的一种内存管理方式,而 Cas Synchronized 则是一种并发控制技术,用于保证多线程间访问共享资源的正确性。从这个角度来看,Cas Synchronized 和 Segmented 并不是完全相同的概念,也不是可比较的。
如果您的问题是关于何时采用 Cas Synchronized 而不是 Segmented,我可以给您一些指导意见:Cas Synchronized 通常适用于多线程环境下,用于协调多个线程的共同操作。相比之下,Segmented 更适用于需要动态加载程序模块、限制程序大小或者确保不同程序区域内存不会交叉的情况。
希望这些信息能够回答您的问题。如果您有其他问题或需要更详细的解释,请告诉我。
相关问题
在jdk1.8中cas+synchronized与segment相比的好处是什么?
在 JDK1.8 中,使用 CAS(Compare And Swap)和 synchronized(锁)机制实现并发同步。相比于 JDK1.7 中使用的 Segment 机制,CAS 和 synchronized 在性能和并发度上都有所提高。
具体来说,CAS 操作相当于一个乐观锁,当进行操作时,先比较当前内存值是否和预期值相等,如果相等则进行操作,否则不进行操作。这避免了竞争和阻塞,提高了并发度。而 synchronized 在加锁时会阻塞其他的线程,降低了并发度。此外,CAS 操作在执行时也更加轻量级,性能更优。
另外,JDK1.8 中的 ConcurrentHashMap 通过分段锁,从而减少了对全局锁的依赖,也提高了并发度和性能。而在 JDK1.7 中的 ConcurrentHashMap 使用的是 Segment 机制,需要对每个 Segment 加锁,带来了一定的性能损失。
ConcurrentHashMap 1.8为什么要使用CAS+Synchronized取代Segment+ReentrantLock
ConcurrentHashMap 1.8使用CAS和Synchronized取代Segment和ReentrantLock的原因是为了提高并发性能和减少内存占用。CAS和Synchronized是Java中常用的同步机制,它们可以保证线程安全,而且相比于Segment和ReentrantLock,它们的性能更好,占用的内存更少。因此,ConcurrentHashMap 1.8采用CAS和Synchronized来实现并发控制,以提高性能和减少内存占用。