6 java multithreading hashtable hashmap thread-safety
我真的很困惑这两个集合在多线程环境中的表现.
哈希表是同步的,这意味着没有2个线程同时更新它的值吗?
Pau*_*lan 12
查看用于线程安全映射的ConcurrentHashMap.
它们提供HashTable的所有功能,其性能非常接近HashMap.
通过代替使用地图宽锁获得性能,该集合默认维护一个包含16个锁的列表,每个锁用于锁定地图的单个存储桶.您甚至可以配置存储桶数量:)根据您的数据调整此数据可以提高性能.
我不能在Brian Goetz的http://jcip.net/中推荐足够的Java Concurrency in Practice
每当我读到它时,我仍然会学到新东西.
确切地说,HashTable 是同步的,这意味着在多线程环境中使用它是安全的(许多线程访问同一个 HashTable)如果两个线程尝试同时更新哈希表,其中一个线程将必须等待另一个线程完成他的更新。
HashMap 不是同步的,因此速度更快,但在多线程环境中可能会出现问题。