目录: 1.volatile变量 2.Java并发编程学习 3.CountDownLatch用法 4.CyclicBarrier使用 5.BlockingQueue使用 6.任务执行器Executor7.CompletionService使用8.ConcurrentHashMap使用9.Lock使用 ...
分类:
编程语言 时间:
2016-07-19 18:46:41
阅读次数:
219
锁分段概述 在某些情况下,可以将锁分解技术进一步扩展为对一组独立对象上的锁进行分解,这种情况被称为锁分段。例如:ConcurrentHashMap。 锁分段的缺点 与采用单个锁来实现独占访问相比,要获取多个锁来实现独占访问将更加困难并且开销更高。通常,在执行一个操作时最多只需获取一个锁,但在某些情况 ...
分类:
其他好文 时间:
2016-07-19 18:44:37
阅读次数:
664
如何使用 概述 ConcurrentHashMap: 线程安全; 其将整个Hash桶进行了分段segment,也就是将这个大的数组分成了几个小的片段segment,而且每个小的片段segment上面都有锁存在,那么在插入元素的时候就要先找到应该插入到哪一个片段segment,然后再在这个片段上面进行 ...
分类:
编程语言 时间:
2016-07-19 18:19:49
阅读次数:
126
关于链表的考察 链表是面试里面经常涉及到的考点,因为链表的结构相比于Hashmap、Hashtable、Concurrenthashmap或者图等数据结构简单许多,对于后者更多面试的侧重点在于其底层实现。比如Hashmap中Entry<k,v>等操作、如何扩容、容量的设定等。链表的考察更侧重于代码的 ...
分类:
编程语言 时间:
2016-07-16 06:39:11
阅读次数:
145
一、简单回顾ConcurrentHashMap在jdk1.7中的设计 先简单看下ConcurrentHashMap类在jdk1.7中的设计,其基本结构如图所示: 每一个segment都是一个HashEntry<K,V>[] table, table中的每一个元素本质上都是一个HashEntry的单向 ...
分类:
编程语言 时间:
2016-07-14 03:03:42
阅读次数:
167
如果你是一名Java开发人员,我能够确定你肯定知道ConcurrentModificationException,它是在使用迭代器遍历集合对象时修改集合对象造成的(并发修改)异常。实际上,Java的集合框架是迭代器设计模式的一个很好的实现。 Java 1.5引入了java.util.concurre ...
分类:
其他好文 时间:
2016-07-11 01:04:58
阅读次数:
163
译文出处: 踏雁寻花 原文出处:lukaseder 这里我将会给大家演示用ConcurrentHashMap类和lambda表达式实现一个本地缓存。因为Map有一个新的方法,在key为Null的时候自动计算一个新的value值。非常适合实现cache。来看下代码: 1 2 3 4 5 6 7 8 9 ...
分类:
编程语言 时间:
2016-07-11 00:39:13
阅读次数:
263
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 ...
分类:
其他好文 时间:
2016-07-02 14:23:35
阅读次数:
202
在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如 ...
分类:
编程语言 时间:
2016-07-01 10:14:43
阅读次数:
289
一、简单回顾ConcurrentHashMap在jdk1.7中的设计 先简单看下ConcurrentHashMap类在jdk1.7中的设计,其基本结构如图所示: 每一个segment都是一个HashEntry<K,V>[] table, table中的每一个元素本质上都是一个HashEntry的单向 ...
分类:
编程语言 时间:
2016-06-20 22:19:59
阅读次数:
169