Collections.synchronizedMap()与ConcurrentHashMap主要区别是:Collections.synchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步,而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作。这样,ConcurrentHashMap在性能以及安全性方面,明显比Collections.synchronizedMap()更加有优势。同时,同步操作精确控制到桶,所以,即使在遍历map时,其他线程试图对map进行数据修改,也不会抛出ConcurrentModificationException
相关文章
- Docker与KVM之间的区别
- DVI与DVI-D的区别
- 进程、线程、服务和任务的区别以及多线程与超线程的概念
- 微信收款「商业版」与「个人版」有什么区别?看完这篇你就懂! - 四海骄阳
- GitHub Copilot 与 OpenAI ChatGPT 的区别及应用领域比较
- mysql:数据库与实例的区别 - 家有四只胖加菲
- 【零碎知识】pip install 与 conda install 的区别
- Django用户认证模块中继承AbstractUser与AbstractBaseUser重写User表的区别
- Hypervisor 和Docker 还有Qemu有什么区别与联系?
- Stream toList不能滥用以及与collect(Collectors.toList)的区别