![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发容器
并发容器
Liao_Xiang
这个作者很懒,什么都没留下…
展开
-
BlockingQueue
BlockingQueue 简单介绍 阻塞队列(BlockingQueue)被广泛使用在“生产者-消费者”问题中,其原因是 BlockingQueue 提供了可阻塞的插入和移除的方法。当线程向队列中插入元素时,如果队列已满,则阻塞线程,直到队列有空闲位置(非满);当线程从队列中取元素(删除队列元素)时,如果队列未空,则阻塞线程,直到队列有元素。 ConcurrentLinkedQueue和Conc...原创 2019-12-20 10:18:28 · 103 阅读 · 0 评论 -
ConcurrentLinkedQueue
参考文献: Java并发编程之ConcurrentLinkedQueue详解 J.U.C之collections框架:ConcurrentLinkedQueue ConcurrentLinkedQueue是一个线程安全的队列,线程安全的队列又分为阻塞队列和非阻塞队列,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。 阻塞队列...原创 2019-12-20 09:55:36 · 138 阅读 · 0 评论 -
CopyOnWriteArrayList
参考文献: 死磕 java集合之CopyOnWriteArrayList源码分析 CopyOnWriteArrayList源码剖析 CopyOnWriteArrayList源码分析(基于JDK8) JavaGuide整理 JDK中提供了 CopyOnWriteArrayList 类比相比于在读写锁的思想又更进一步。为了将读取的性能发挥到极致,CopyOnWriteArrayList 读取是完全不用...原创 2019-12-18 11:31:33 · 118 阅读 · 0 评论 -
ConcurrentHashMap(JDK1.8)
数据结构 ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构类似,数组+链表/红黑二叉树。Java 8在链表长度超过一定阈值(8)时将链表(寻址时间复杂度为O(N))转换为红黑树(寻址时间复杂度为O(log(N))) 区别 底层数据结构: JDK1.7的 ConcurrentHashMap 底层...原创 2019-12-18 10:43:06 · 301 阅读 · 0 评论 -
ConcurrentHashMap(JDK1.7)
简介 ConcurrentHashMap相当于多线程版本的HashMap,不会有线程安全问题,在多线程环境下使用HashMap可能产生死循环等问题,我们知道除了HashMap,还有线程安全的Hashtable,Hashtable的实现原理与HashMap一致,只是Hashtable所有的方法都使用了synchronized来修饰确保线程安全性,这在多线程竞争激烈的环境下效率是很低的;Concurr...原创 2019-12-18 10:01:45 · 138 阅读 · 0 评论