concurrentHashMap和HashTable有什么区别
时间: 2023-12-18 08:05:35 浏览: 78
HashMap与HashTable区别
1. 线程安全性:ConcurrentHashMap是线程安全的,HashTable也是线程安全的,但是它是通过在每个方法上加锁来实现的,而ConcurrentHashMap通过分段锁实现了更好的并发性能。
2. 性能:ConcurrentHashMap在高并发情况下性能更好,因为它采用了分段锁技术,不同的线程可以同时访问不同的分段,从而减小了锁的竞争。而HashTable则是在每个方法上加锁,导致在高并发情况下性能下降。
3. 迭代器:ConcurrentHashMap的迭代器是弱一致性的,而HashTable则是强一致性的。弱一致性的迭代器可以在迭代期间反映出其他线程对map的修改,而强一致性的迭代器则不能。
4. null值:ConcurrentHashMap允许key和value都为null,而HashTable不允许。
阅读全文