首页 > 试题广场 >

Map和ConcurrentHashMap的区别?

[问答题]
请你说明一下Map和ConcurrentHashMap的区别?
hashmap是线程不安全的,put时在多线程情况下,会形成环从而导致死循环。CoucurrentHashMap是线程安全的,采用分段锁机制,减少锁的粒度。
发表于 2019-05-05 13:28:39 回复(0)
更多回答
不按套路出牌==。一般都是根据线程安全的角度来切入探讨hashmap和concurrentHashmap。
我这边精简的补充说下:首先Map是接口,一般而言concurrentHashMap是线程安全的,具体实现
在1.7采取的segment分段锁,有点类似于16个线程安全的hashtable组合成了一个concurrenthashmap,不同分段操作不需要上锁,同一个分段才需要上锁,读不上锁,写上锁。锁的粒度更加精细。而1.8采取的AQS和CAS来实现【用了不少volatile】。
发表于 2019-01-22 16:39:32 回复(0)
Map和ConcurrentHashMap的区别,Map是接口,ConcurrentHashMap是实现类,不过一般因该是问HashMap和ConcurrentHashMap区别吧?
发表于 2019-01-16 09:42:32 回复(0)
我这边精简的补充说下:首先Map是接口,一般而言concurrentHashMap是线程安全的,具体实现 在1.7采取的segment分段锁,有点类似于16个线程安全的hashtable组合成了一个concurrenthashmap,不同分段操作不需要上锁,同一个分段才需要上锁,读不上锁,写上锁。锁的粒度更加精细。而1.8采取的AQS和CAS来实现【用了不少volatile
发表于 2019-04-29 18:07:34 回复(0)
map是接口 concurrenthashmap是实现类
发表于 2019-04-28 22:56:54 回复(0)
hashmap是线程不安全的,put时在多线程情况下,会形成环从而导致死循环。CoucurrentHashMap是线程安全的,采用分段锁机制,减少锁的粒度。
发表于 2019-04-27 13:33:08 回复(0)
CoucurrentHashMap是线程安全的,hashmap是线程不安全
发表于 2019-04-26 22:56:40 回复(0)
急急急
发表于 2019-01-14 09:04:17 回复(0)