容器(零碎笔记)

内容:
在这里插入图片描述
队列很大一部分是为高并发做准备的
在这里插入图片描述
Vector,HashTable基本不用
Collections工具类可以把HashMap弄成带锁的
在这里插入图片描述
实际选择我们还是要进行压力测试
这些容器没有替代关系,要看实际情况
插入效率:
HashTable > HashMap > CurentHashMap
读效率:
HashTable < HashMap < CurentHashMap

多线程考虑容器的时候少考虑list,多考虑queue

CopyOnWriteArrayList:(用在读特别多写特别少的情况)
读的时候不加锁,写的时候把内部的数组复制一份,在复制的数组中写入数据,然后再把旧的引用指向复制的数组。
在这里插入图片描述
源码:
在这里插入图片描述
读不用加锁的原因就是新的前面的内容是和旧的一样的

在这里插入图片描述
BlockingQueue :阻塞队列
ConcurrentQueue:
在这里插入图片描述
LinkedBlockingQueue:(底层用LockSuppports)
put:如果满了线程会等待
take
在这里插入图片描述
ArrayBlockingqueue:
put:满了会等待
add:满了会报异常

在这里插入图片描述
offer:有返回值来判断加入成功没有,可以设置等待时间,在满了的时候等待几秒才返回结果
在这里插入图片描述

deleyQueue:按等待时间排序(用于按时间调度任务)
使用:
要求装入的东西实现Delayed接口
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
PriortyQueue: 优先队列

SynchronusQueue: 不是用来装东西的,是让一个线程给另一个线程下达任务的
在这里插入图片描述
TransferQueue
transfer():线程把东西放着直到有人来取才继续干别的事

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值