hashmap,hashtable,concurrenthashmap多线程下的比较(持续更新)

Posted 侧耳倾听的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashmap,hashtable,concurrenthashmap多线程下的比较(持续更新)相关的知识,希望对你有一定的参考价值。

1.hashMap 多线程下put会造成死循环,主要是扩容时transfer方法会造成死循环。

http://blog.csdn.net/zhuqiuhui/article/details/51849692(具体原因)

2.hashTable,使用synchornized保证线程安全,线程竞争竞争激烈的情况下,效率低下。当一下线程访问hashTable方法的时候,其他的线程会进入轮询或者阻塞的情况。

如果线程1是用put方法添加元素,线程2不能put元素也不能get元素,所以竞争越激烈越低。

3.concurrentHashmap

   使用锁分段技术,假设容器对数据进行分段,每一段都加入分配一把锁,当一个线程赵勇锁访问其中一个段数据的时候,其他的数据段也能被访问。

 

以上是关于hashmap,hashtable,concurrenthashmap多线程下的比较(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章

hashmap和hashtable的区别

HashMap于Hashtable的区别

HashTable和HashMap的区别详解

HashMap和HashTable简介和区别

HashTable和HashMap的区别详解

ConcurrentHashMap-----不安全线程hashmap-安全线程-hashtable