SynchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步。而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作。所以,ConcurrentHashMap在性能以及安全性方面,明显比Collections.synchronizedMap()更加有优势。同时,同步操作精确控制到桶,这样,即使在遍历map时,如果其他线程试图对map进行数据修改,也不会抛出ConcurrentModificationException。
![](https://onlysheep.cn/wp-content/uploads/2023/09/QQ图片20210211180605.jpg)
![](https://onlysheep.cn/wp-content/uploads/2023/09/微信图片_20230913153506.jpg)
如果你觉得此文对你有所帮助,可以支持一下博主,一分也是缘分。