文档章节

JDK并发包 - 集合容器

i
 itititit
发布于 2017/08/18 12:09
字数 360
阅读 3
收藏 0

CopyOnWriteArrayList

在读多写少的场合,该List 性能非常好。

只有在写 - 写 之间才需要同步等待。在写操作时,会进行加锁操作,并对数组进行复制,对副本数组进行写操作,然后替代原始数组,由于volatile,其他读操作可以立即察觉。对于读操作,则通过下标直接读取,不需要加锁。

 

 

ConcurrentLinkedQueue

高并发的队列。高并发环境中性能最好的队列。

不使用锁而单纯地使用 CAS 操作保证线程的安全, offer()操作主要逻辑通过 for 循环 多次尝试调用casNext(null, newNode)操作,直至成功。

 

 

ConcurrentHashMap

高效的并发HashMap,线程安全,专门为并发进行了性能优化。

 

 

Collections.synchronized*

  • Collections.synchronizedList( new LinkedList()):生成先测很难过安全的List对象,并发级别不高
  • Collections.synchronizedMap( new HashMap())会生成一个名为SynchronizedMap的Map,通过委托,将自己Map的功能传入HashMap实现,而自己负责保证线程安全。在多线程环境中的性能表现并不算太好,并发级别不高

 

 

BlockingQueue

JDK内部通过链表、数组等方式实现了该接口,表示阻塞队列,适合用于数据共享通道。

ArrayBlockingQueue:有界队列

LinkedBlockingQueue:无界队列

 

offer():队列满,返回false

put():阻塞等待

pull():队列空,返回null;

take():阻塞等待

 

 

跳表:SkipList

待完善~

 

© 著作权归作者所有

i
粉丝 0
博文 24
码字总数 15531
作品 0
私信 提问
Java集合--线程安全(CopyOnWrite机制)

5 Java并发集合 5.1 引言 在前几章中,我们介绍了Java集合的内容,具体包括ArrayList、HashSet、HashMap、ArrayQueue等实现类。 不知道各位有没有发现,上述集合都有一个共同的特点,那就是线...

贾博岩
2017/11/05
0
0
Java并发(9)- 从同步容器到并发容器

引言 容器是Java基础类库中使用频率最高的一部分,Java集合包中提供了大量的容器类来帮组我们简化开发,我前面的文章中对Java集合包中的关键容器进行过一个系列的分析,但这些集合类都是非线...

Ala6
2018/10/17
93
0
concurrent包的并发容器

普通集合小细节 ArrayList实现RandomAccess这个标志接口,作用是说明这个类在遍历的时候使用迭代器比较慢,因此对list的遍历的最好处理是下面: Jdk自带的unmodifyMap=Collections.unmodifia...

肥肥小浣熊
2017/11/05
0
0
并发容器之写时拷贝的 List 和 Set

对于一个对象来说,我们为了保证它的并发性,通常会选择使用声明式加锁方式交由我们的 Java 虚拟机来完成自动的加锁和释放锁的操作,例如我们的 synchronized。也会选择使用显式锁机制来主动...

Single_YAM
2017/12/02
0
0
并发编程6:CopyOnWriteArrayList 的写时复制

首先提个问题: 线程安全的 List 集合有什么? CopyOnWriteArrayList 的特点以及使用场景? 如果这个问题你答不上来,那这篇文章可能就对你有些价值。 读完本文你将了解: CopyOnWriteArray...

u011240877
2017/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kylin构建Cube过程详解

1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式...

大数据技术进阶
8分钟前
3
0
Git保存密码

保存密码 $ git config --global credential.helper store 参数 --global 设置全局,如果用 --local 则只设置当前库 要注意保存时是用明文保存的,所以不要在公用电脑使用...

编程老陆
10分钟前
4
0
ofcms 说明文档

一、模板说明 项目概述 java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管理、在线模板页面编辑等功能、代码完全开源、MIT授权协议。 技术...

kuchawyz
17分钟前
4
0
理解CSS相对定位和固定定位

本文转载于:专业的前端网站➦理解CSS相对定位和固定定位 前面的话   一般地,说起定位元素是指position不为static的元素,包括relative、absolute和fixed。前面已经详细介绍过absolute绝对...

前端老手
27分钟前
3
0
iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
41分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部