SynchronizedMap和ConcurrentHashMap有什么区别?
Posted 四猿外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SynchronizedMap和ConcurrentHashMap有什么区别?相关的知识,希望对你有一定的参考价值。
SynchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步。而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作。
所以,ConcurrentHashMap在性能以及安全性方面,明显比Collections.synchronizedMap()更加有优势。同时,同步操作精确控制到桶,这样,即使在遍历map时,如果其他线程试图对map进行数据修改,也不会抛出ConcurrentModificationException。
以上是关于SynchronizedMap和ConcurrentHashMap有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
SynchronizedMap 和 ConcurrentHashMap 有什么区 别?
SynchronizedMap和ConcurrentHashMap有什么区别?
Java 同步块与 Collections.synchronizedMap
Collections中的synchronizedMap方法是不是同步读写操作[重复]
Collections.synchronizedMap(new LinkedHashMap());没有使 Map 线程安全