
java并发包
文章平均质量分 68
cyq12345_
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap源码分析
首先我们先对并发容器做一个简单的介绍: ConcurrentHashMap代替同步的Map(Collections.synchronized(new HashMap())),众所周知,HashMap是根据散列值分段存储的,同步Map在同步的时候锁住了所有的段,而ConcurrentHashMap加锁的时候根据散列值锁住了散列值锁对应的那段,因此提高了并发性能。ConcurrentHashMap也增原创 2017-12-29 15:12:43 · 204 阅读 · 0 评论 -
CopyOnWriteArrayList源码分析
在实际的编程的时候我们肯定会遇到并发编程的时候,那我们就要考虑并发编程的时候,可能出现的问题。所以我们就要用到Java的并发包的类,去完成我们的工作。今天我们就来分析CopyOnWriteArrayList这个并发容器,他是怎么做到的并发编程的。我们不跟原来一样,直接贴代码,然后给大家一行一行的讲代码的意思。我们分析思路 1。为什么他能做到,多个线程访问的时候,数据不会出错。 2。他是怎么做的,原创 2017-12-29 11:45:16 · 218 阅读 · 0 评论 -
ArrayBlockingQueue源码分析
在Java1.5以后增加了阻塞队列BlockingQueue,主要提供了如下的常用方法。 boolean add(E e);往队列里面添加元素,如果可以添加进去,返回true,不能则抛出异常。IllegalStateException boolean offer(E e, long timeout, TimeUnit unit)往队列里面添加元素,如果可以添加返回true,不能则等待一定原创 2018-01-08 16:12:57 · 251 阅读 · 0 评论 -
LinkedBlockingQueue源码分析
在很久前我们分析了ArrayBlockingQueue,今天我们来分析分析LinkedBlockingQueue. 看看他们之间有什么区别,在什么时候我们用什么那个阻塞队列。 我们先来看看LinkedBlockingQueue的一些属性。定义了一个内部类,相当于一个结点,用来对元素进行操作的结构。static class NodeE> { E item;原创 2018-01-30 15:38:14 · 349 阅读 · 0 评论