我真的很困惑这两个集合在多线程环境中的表现。
哈希表是同步的,这意味着不会有 2 个线程同时更新它的值,对吧?
最佳答案
看ConcurrentHashMap s 表示线程安全映射。
它们提供了 HashTable 的所有功能,并且性能非常接近 HashMap。
性能是通过使用 map 范围锁而不是使用 map wide lock 获得的,默认情况下该集合维护一个包含 16 个锁的列表,每个锁用于锁定 map 的一个 bucket。您甚至可以配置桶的数量 :) 根据您的数据调整此项可以帮助提高性能。
Brian Goetz 的《Java 并发实践》我怎么推荐都不为过 http://jcip.net/
每次阅读我仍然能学到新东西。
关于java - 多线程环境下的 HashMap 和哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361784/