This question already has answers here:
What's the difference between ConcurrentHashMap and Collections.synchronizedMap(Map)?

(19个回答)


2年前关闭。




我读了一篇有关线程安全映射的文章,并提出了一个问题。 Collections.synchronizedMap()代理基础地图,并在每种方法上添加synchronized块。另一方面,ConcurrentHashMap不会将整个映射锁定在读/写操作上。这意味着多线程系统中的所有操作都更快。

那么,如今使用synchronizedMap()有什么好处?我看到的只有:
  • 自Java 1.2起可用(相对于ConcurrentHashMap为Java 1.5而言)
  • 可以存储可为空的值(如果基础地图可以做到)
  • synchronizedMap()更好时还有其他情况吗?

    最佳答案

    并不是的。我能想到的唯一其他情况就是轻松地使自定义地图实现线程安全。

    07-24 21:20