
阻塞队列
3个字,让你看了3个字
人生归离复归离,借一浮生逃浮生
展开
-
阻塞队列(三)—— LinkedBlockingDeque源码
标题LinkedBlockingDeque源码 简介 LinkedBlockingDeque是一个双端队列,可以消费队头以及队尾的元素,我们可以设定最大容量,但是设定好后不可改变,因为被final修饰了,然后没有设置的话默认是Integer的最大值,只有一把锁和两个条件队列 下面来看看源码 源码 首先是重要内部类 //Node节点 static final class Node<E> { //元素value E item; //前继节点原创 2022-02-11 14:23:46 · 511 阅读 · 0 评论 -
阻塞队列(二)——LinkedBlockingQueue源码
标题LinkedBlockingQueue源码 简介 LinkedBlockingQueue是一个 基于单向链表实现的阻塞队列, 是先进先出的, 然后至少包含一个元素, 同时不支持null值的元素, 持有两把锁,分别用于管控队头出队,队尾入队 然后来看他的源码 静态内部类 //静态内部类 static class Node<E> { //元素 E item; //下一个Node节点 Node<E> nex原创 2022-02-11 10:58:21 · 330 阅读 · 0 评论 -
阻塞队列(一)—— ArrayBlockingQueue源码解析
ArrayBlockingQueue源码解析 ArrayBlockingQueue是一个阻塞队列,阻塞队列差不多就是依靠消费者和生产者模型来实现的,不过是多生产者,多消费者 然后ArrayBlockingQueue的特点如下: 1、只有1把锁,所以不能同时的进行入队和出队的操作, 2、基于数组实现,同时是一个队列,所以会有两个下标分别用来记录下一个插入点和下一个出队列点 3、容量固定 4、有两个等待队列,分别用来在入队以及出队后分别进行唤醒 5、因为是阻塞队列,当没有数据取的时候,线程会加入到一个等待数据的原创 2022-01-24 17:52:15 · 713 阅读 · 0 评论