Java容器

List

Vector

并发安全的集合,方式使用synchronized修饰

SynchronizedList

使用Collections.synchronizedList()方法创建的集合

ConcurrentLinkedDeque

并发安全的队列,使用poll()方法读取并删除头部元素,读到null时即为读完了

CopyOnWriteArrayList

写的时候加锁,并赋值原有数组,同时扩展一个长度,放置新的元素,读的时候不加锁,读到的是未添加进来的老的数据

读操作非常多时可用

Map

HashTable
SynchronizedHashMap

并发安全的map,对方法内的代码块加synchronized

写的效率高于读的效率

ConcurrentSkipMap

并发安全的有序map,使用跳跃表作为数据结构

ConcurrentHashMap

并发安全的无序的map

读的效率高于写的效率,写的判断逻辑复杂

TreeMap

有序的map与LinkedHashMap不同的是treeMap用的是红黑树,LinkedHashMap用的是链表hashMap

Queue

boolean offer(E e)添加元素,添加不成功返回false

peek()取出元素不会remove数据

poll()取出数据并且会remove数据

BlockingQueue

put()存数据,如果队列已满会阻塞线程直到数据被take取出

take()取出数据,没有数据会阻塞线程一直等待,直到数据被put进去

LinkedBlockingQueue

链表实现的BlockingQueue,无界队列,有内存就能放

ArrayBlockingQueue

底层使用数组实现,属于有界队列,在队列已满的时候

add方法添加元素会抛出异常

offer方法添加元素不会报异常,会返回false,可指定添加时间

DelayQueue

根据等待时间排序,等待越短的会优先被取出,使用PriorityQueue实现

SynchronousQueue

容量为0,用来做任务下发(类似于Exchanger)

不能使用add()添加数据

使用put()添加数据

TransferQueue

新增了transfer()方法,添加完数据库等待数据被消费

LinkedTransferQueue
PriorityQueue

有序的队列,值越小越靠前,底层数据结构是二叉树

ConcurrentLinkedDeque

并发安全的队列,使用poll()方法读取并删除头部元素,读到null时即为读完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不想写代码~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值