该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:SynchronizedMap 和 ConcurrentHashMap 有什么区别
- 锁的粒度:
SynchronizedMap使用全局锁,而ConcurrentHashMap使用锁分离技术,每个段有自己的锁。 - 性能:
ConcurrentHashMap在高并发场景下性能更优,因为它允许更多的并行操作。 - 高级操作:
ConcurrentHashMap提供了一系列高级的原子操作,而SynchronizedMap没有。 - 实现方式:
SynchronizedMap是一个接口,需要通过Collections.synchronizedMap方法来创建一个同步的 Map,而ConcurrentHashMap是一个具体的类,可以直接实例化使用。
1. 同步机制
SynchronizedMap:
SynchronizedMap是在每个方法上添加了synchronized关键字来实现同步的。这意味着在每次只有一个线程能够访问整个Map对象