猿问

ConcurrentHashMap和Collection s.SynizedMap(Map)

ConcurrentHashMap和Collection s.SynizedMap(Map)之间有什么区别?

我有一个Map,它将被多个线程并发修改。

JavaAPI中似乎有三种不同的同步Map实现:

  • Hashtable

  • Collections.synchronizedMap(Map)

  • ConcurrentHashMap

据我所知,Hashtable是一个旧的实现(扩展过时的Dictionary类),该类已在以后进行了调整,以适应Map接口。当它同步的,看起来很严肃可伸缩性问题对于新的项目是不鼓励的。

但另外两个呢?返回的地图之间有什么区别?Collections.synchronizedMap(Map)ConcurrentHashMap是吗?哪一种适合哪种情况?


交互式爱情
浏览 652回答 3
3回答

人到中年有点甜

╔═══════════════╦═══════════════════╦═══════════════════╦═════════════════════╗║   Property    ║     HashMap       ║    Hashtable      ║  ConcurrentHashMap  ║╠═══════════════╬═══════════════════╬═══════════════════╩═════════════════════╣ ║      Null     ║     allowed       ║              not allowed                ║║  values/keys  ║                   ║                                         ║╠═══════════════╬═══════════════════╬═════════════════════════════════════════╣║Is thread-safe ║       no          ║                  yes                    ║╠═══════════════╬═══════════════════╬═══════════════════╦═════════════════════╣║     Lock      ║       not         ║ locks the whole   ║ locks the portion   ║        ║  mechanism    ║    applicable     ║       map         ║                     ║ ╠═══════════════╬═══════════════════╩═══════════════════╬═════════════════════╣║   Iterator    ║               fail-fast               ║ weakly consistent   ║ ╚═══════════════╩═══════════════════════════════════════╩═════════════════════╝关于锁定机制:Hashtable 锁定对象,同时ConcurrentHashMap锁只有水桶.
随时随地看视频慕课网APP

相关分类

Java
我要回答