ObjectThread 线程StringBuffer CollectionHashMap/Hashtable/ConcurrentHashMap/LinkedHashMapLinkedList/ArrayList/CopyOnWriteArrayListVectorTreeMapHashSet/L ...
分类:
其他好文 时间:
2016-08-01 17:34:13
阅读次数:
134
一、简单回顾ConcurrentHashMap在jdk1.7中的设计
先简单看下ConcurrentHashMap类在jdk1.7中的设计,其基本结构如图所示:
每一个segment都是一个HashEntry[] table, table中的每一个元素本质上都是一个HashEntry的单向队列。比如table[3]为首节点,table[3]->next为节点1,之后为节点2,依次类...
分类:
编程语言 时间:
2016-07-30 18:31:56
阅读次数:
261
ConcurrentHashMap是有Segment数组结构和HashEntry数组结构组成。 Segment是一种可重入锁(ReentrantLock),在ConcurrentHashMap里扮演锁的角色; HashEntry则用于存储键值对数据。一个ConcurrentHashMap里包含一个S ...
分类:
其他好文 时间:
2016-07-30 00:16:37
阅读次数:
228
Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接 ...
分类:
编程语言 时间:
2016-07-29 17:08:38
阅读次数:
217
有BlockingQueue及其相关的类,跟阻塞队列有关系。 ConcurrentHashMap,ConcurrentLinkedQueue等,这些是相关集合的线程同步版本。 CopyOnWriteArrayList,也是一种并发用的容器,当我们改变这个数组的时候,先复制一个副本,修改这个副本,再复 ...
分类:
编程语言 时间:
2016-07-28 14:21:19
阅读次数:
191
1. ConcurrentHashMap的初始化: 下面我们来结合源代码来具体分析一下ConcurrentHashMap的实现,先看下初始化方法: CurrentHashMap的初始化一共有三个参数: 一个initialCapacity,表示初始的容量; 一个loadFactor,表示负载参数; 最 ...
分类:
编程语言 时间:
2016-07-24 19:20:58
阅读次数:
336
1. Hashtable: (1)是一个包含单向链的二维数组,table数组中是Entry<K,V>存储,entry对象; (2)放入的value不能为空; (3)线程安全的,所有方法均用synchronized修饰; 2. HashMap: (1)相当于Hashtable的升级版本; (2)可以放 ...
分类:
编程语言 时间:
2016-07-24 19:08:59
阅读次数:
178
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁 ...
分类:
编程语言 时间:
2016-07-24 18:02:45
阅读次数:
179
一.ConcurrentHashMap介绍 我们可以在单线程时使用HashMap提高效率,而多线程时用Hashtable来保证安全。但是,HashMap中未进行同步考虑,而Hashtable则使用了synchronized,带来的直接影响就是可选择,synchronized是针对整张Hash表的,即 ...
分类:
编程语言 时间:
2016-07-23 00:39:43
阅读次数:
235
承认有些标题党味道,但却在实际异步框架中使用了。 比起“公认”concurrentHashMap方式,提高有3-4倍的性能以及更低cpu占有率 需求 异步框架需要一个buffer,存放请求数据,多线程共享。 显然这是一个多线程并发问题。 同步锁方案 开始小觑了问题,以为只是简单地锁住资源、插入请求对 ...
分类:
其他好文 时间:
2016-07-22 21:34:34
阅读次数:
207