0
点赞
收藏
分享

微信扫一扫

容器(零碎笔记)

沐之轻语 2022-03-12 阅读 33

内容:
在这里插入图片描述
队列很大一部分是为高并发做准备的
在这里插入图片描述
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():线程把东西放着直到有人来取才继续干别的事

在这里插入图片描述

举报

相关推荐

pandas 零碎笔记

C++零碎笔记(2)

C++零碎笔记(3)

零碎注意点

零碎内容总结

java零碎记忆

如何保障有序性(零碎笔记)

C++零碎知识

前端零碎知识随笔

0 条评论