集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 ...
分类:
编程语言 时间:
2017-03-31 12:11:57
阅读次数:
213
本人小白,看到资料说ConcurrentHashMap是线程安全的,get过程不需要加锁,put是线程安全的,推荐高并发时使用.但是本人不清楚是否该map中存入的引用类型对象,对象属性变化也是否线程安全的,看了很多资料,貌似都没说明这一点,所以写代码测试一下, ...
分类:
编程语言 时间:
2017-03-30 23:16:44
阅读次数:
158
hashMap hashTable concurrentHashMap hashMap的效率高于hashTable,hashMap是线程不安全的,并发时hashMap put方法容易引起死循环,导致cpu利用率达到100% 所以高并发下不能使用hashMap,而是用ConcurentHashMap, ...
分类:
其他好文 时间:
2017-03-27 19:31:45
阅读次数:
155
并发包: 1、ConcurrentHashMap 线程安全的HashMap的实现 数据结构:一个指定个数的Segment数组,数组中的每一个元素Segment相当于一个HashTable(一个HashEntry[]) 扩容的话,只需要扩自己的Segment而非整个table扩容 key与value均 ...
分类:
编程语言 时间:
2017-03-26 23:36:02
阅读次数:
223
1.hashMap 多线程下put会造成死循环,主要是扩容时transfer方法会造成死循环。 http://blog.csdn.net/zhuqiuhui/article/details/51849692(具体原因) 2.hashTable,使用synchornized保证线程安全,线程竞争竞争激 ...
分类:
编程语言 时间:
2017-03-26 21:06:36
阅读次数:
174
https://www.ibm.com/developerworks/cn/java/j-jtp04186/ https://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/ http://www.cnblogs.com/Ma ...
分类:
编程语言 时间:
2017-03-25 23:32:36
阅读次数:
179
阅读目录 什么是Session Session的目的 实现机制 Tomcat中的session实现 session存在的问题 什么是Session 对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap; Session的目的 Http协议是一 ...
分类:
其他好文 时间:
2017-03-23 22:19:15
阅读次数:
253
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方... ...
分类:
其他好文 时间:
2017-03-23 18:36:46
阅读次数:
139
大致思路是用一个单例的Map实现,当然此Map得是线程安全的--ConcurrentHashMap 原本项目需求是缓存十条消息,所以打算用Map实现缓存机制。中途夭折下面具体尚未实现。。。 当然此代码仞为半成品,具体得根据项目需求采用不同的原则清除缓存 ...
分类:
其他好文 时间:
2017-03-19 15:55:56
阅读次数:
182
ConcurrentHashMap源码分析,参考:http://blog.csdn.net/do_smile/article/details/46911727 HashMap源码分析,参考:http://blog.csdn.net/ghsau/article/details/16843543/ , ... ...
分类:
编程语言 时间:
2017-03-19 01:51:50
阅读次数:
170