Java容器源码分析-高并发处理Map-ConcurrentHashMap和HashTable

    上一章节,分析了经常使用的Map集合,随着互联网多线程并发的场景愈来愈多,原始的数据结构已经没法知足真是的场景需求,因此这种线程安全的集合就显得很是重要。这里介绍一下ConcurrentHashMap和HashTable两种线程安全的数据集合。    安全

    那么在分析以前咱们首先提出一个问题ConcurrentHashMap和HashTable在作线程安全时的区别?数据结构

    这里介绍一个比较全面分析源码的帖子:http://blog.csdn.net/zhangerqing/article/details/8193118多线程

    总结:并发

    一、HashTable与HashMap采用的数据结构一致。只不过HashTable是线程安全的,在主要的操做方法上都实现了synchronized同步.net

    二、HashTable不容许null的key值存储,若是存储后会报NullPointerException异常线程

    三、ConcurrentHashMap是线程安全的HashMapblog

    四、HashTable和ConcurrentHashMap的区别在于实现锁的机制不同,ConcurrentHashMap锁的是哈希表中的key,而HashTable锁的是整个哈希表,以下图(侵删)同步

相关文章
相关标签/搜索