java 并发集合

java 集合框架

在这里插入图片描述

注: 图中只列举了主要的继承派生关系,并没有列举所有关系。比方省略了AbstractList, NavigableSet等抽象类以及其他的一些辅助类,如想深入了解,可自行查看源码。

并发集合
实现的集合接口并发集合底层实现及作用
ListVector相当于线程安全的 ArrayList ,支持并发。
读写操作都用了 synchronized 同步,适用于写多读少的场景。
已被弃用:因为 Vector 在每个可能出现线程安全的方法上加了 synchronized 关键字,效率低。
ListCopyOnWriteArrayList相当于线程安全的 ArrayList ,支持高并发访问。
在写的时候复制一个副本,对副本写,写完用副本替换原值,读的时候不需要同步,读写并发,适用于写少读多的场合。
SetCopyOnWriteArraySet相当于线程安全的 HashSet,基于 CopyOnWriteArrayList 实现,只是进行了去重。
SetConcurrentSkipListSet相当于线程安全的 TreeSet,基于跳表结构实现,支持高并发访问。
MapConcurrentHashMap相当于线程安全的 HashMap,支持高并发访问。
MapConcurrentSkipListMap相当于线程安全的 TreeMap,基于跳表实现,使用跳表的数据结构进行快速查找,支持高并发访问。
专用于高并发的Map实现,内部实现进行了锁分离,get操作是无锁的。
QueueArrayBlockingQueue基于数组实现的线程安全的有界阻塞队列。
QueueLinkedBlockingQueue阻塞队列,非常适合用于作为数据共享的通道。
QueueConcurrentLinkedQueue非阻塞队列,CAS 非阻塞算法,相当于线程安全的 LinkedList。
DequeLinkedBlockingDeque基于双向链表实现的双向并发阻塞队列,支持 FIFO、FILO。
DequeCopyOnWriteArrayList基于双向链表实现的无界队列,支持FIFO、FILO。

关于跳表 百度百科 https://baike.baidu.com/item/%E8%B7%B3%E8%A1%A8/22819833

List 接口直接实现类:ArrayList,Vector,LinkedList。

Vector 和 ArrayList 的区别
集合区别
ArrayList线程不安全,只能在单线程下使用。
Vector线程安全,使用了 synchronized 关键字保证多线程访问安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Whitemeen太白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值