容器:
1. Copy-On-Write容器
CopyOnWrite容器即写时复制的容器。java中的容器为CopyOnWriteArrayList和CopyOnWriteArraySet。在并发场景中使用,【用于读多写少的并发场景】
【http://ifeve.com/java-copy-on-write/】
2.ConcurrentHashMap
...
分类:
编程语言 时间:
2016-04-29 15:04:22
阅读次数:
203
1、HashMap、HashTable、ConcurrentHashMap的区别
【参考:http://www.cnblogs.com/carbs/archive/2012/07/04/2576995.html】
(关于HashMap的分析,在第三篇总结《Java笔试面试题整理第三波》中的hashCode有分析,同样在这篇中有关于Java容器的介绍。HashMap和HashTa...
分类:
编程语言 时间:
2016-04-28 17:07:36
阅读次数:
439
概述
线程安全的HashMap版本。
1)基本思想:将整个大的hash table进一步细分成小的hash table,即Segment;
2)读不用加锁;写操作在所在的Segmenet上加锁,而不是整个HashMap,Hashtable就是所有方法竞争Hashtable上的锁,导致并发效率低;
3)采用懒构造segment(除了segments[0]),以减少初始化内存。...
分类:
其他好文 时间:
2016-04-22 20:17:14
阅读次数:
126
HashMap和ConcurrentHashMap的区别,HashMap的底层源码
TreeMap、HashMap、LindedHashMap的区别
Collection包结构,与Collections的区别
try catch finally,try里有return,finally还执行么
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
Java面向对象的三个特征与含义...
分类:
编程语言 时间:
2016-04-21 16:50:29
阅读次数:
287
说说自己在开发中经常用到的写法。 /** * 数据缓存 * @author * */public class DataCache { /** 对象缓存*/ public static Map<String ,MsgPojo> msgMap = new ConcurrentHashMap<String ...
分类:
编程语言 时间:
2016-04-21 01:29:39
阅读次数:
217
ConcurrentHashMap的get操作 get操作的高效之处在于整个get过程不需要加锁,get方法里将要使用的共享变量都定义成volatile。 ConcurrentHashMap的Put操作 在操作共享变量时必须得加锁。Put方法首先定位到Segment,然后在Segment里进行插入操 ...
分类:
其他好文 时间:
2016-04-14 01:28:32
阅读次数:
300
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get...
分类:
其他好文 时间:
2016-04-12 13:03:09
阅读次数:
450
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅...
分类:
编程语言 时间:
2016-04-12 13:00:51
阅读次数:
228
oncurrentModificationException 在这种迭代方式中,当iterator被创建后集合再发生改变就不再是抛出ConcurrentModificationException, 取而代之的是在改变时new新的数据从而不影响原有的数据 ,iterator完成后再将头指针替换为新的数 ...
分类:
其他好文 时间:
2016-04-09 13:54:19
阅读次数:
280
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。 ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每 ...
分类:
其他好文 时间:
2016-04-07 20:19:10
阅读次数:
136