06 2021 档案

JAVA并发(7)-并发队列PriorityBlockingQueue的源码分析
摘要:本文讲PriorityBlockingQueue(优先阻塞队列) 1. 介绍 一个无界的具有优先级的阻塞队列,使用跟PriorityQueue相同的顺序规则,默认顺序是自然顺序(从小到大)。若传入的对象,不支持比较将报错( ClassCastException)。不允许null。 底层使用的是基于数 阅读全文

posted @ 2021-06-11 00:08 ukyu 阅读(285) 评论(0) 推荐(0)

JAVA并发(6)-并发队列ArrayBlockingQueue
摘要:本文讲ArrayBlockingQueue 1. 介绍 一个基于数组的有界阻塞队列,FIFO顺序。支持等待消费者和生产者线程的可选公平策略(默认是非公平的)。公平的话通常会降低吞吐量,但是可以减少可变性并避免之前被阻塞的线程饥饿。 1.1 类结构 ArrayBlockingQueue继承关系 Arr 阅读全文

posted @ 2021-06-09 20:34 ukyu 阅读(319) 评论(0) 推荐(0)

JAVA并发(5)-并发队列LinkedBlockingQueue的分析
摘要:本文介绍LinkedBlockingQueue,这个队列在线程池中常用到。(请结合源码,看本文) 1. 介绍 LinkedBlockingQueue, 不支持null,基于单向链表的可选有界阻塞队列。队列的顺序是FIFO。基于链表的队列通常比基于数组的队列有更高的吞吐量, 但在大多数的并发应用中具有 阅读全文

posted @ 2021-06-08 15:21 ukyu 阅读(573) 评论(1) 推荐(0)

IDEA debug ConcurrentLinkedQueue时抽风
摘要:1. 介绍 如标题所见,我在使用IDEA debug ConcurrentLinkedQueue的Offer方法时,发生了下面的情况。 代码如下: ConcurrentLinkedQueue<string> queue = new ConcurrentLinkedQueue<>(); queue.o 阅读全文

posted @ 2021-06-06 12:24 ukyu 阅读(251) 评论(1) 推荐(1)

JAVA并发(4)-并发队列ConcurrentLinkedQueue
摘要:本文开始介绍并发队列,为后面介绍线程池打下基础。并发队列莫非也是出队、入队操作,还有一个比较重要的点就是如何保证其线程安全性,有些并发队列保证线程安全是通过lock,有些是通过CAS。 我们从ConcurrentLinkedQueue开始吧。 1. 介绍 ConcurrentLinkedQueue是 阅读全文

posted @ 2021-06-03 23:33 ukyu 阅读(622) 评论(0) 推荐(0)

导航