1 ArrayBlockingQueue 有界的阻塞队列

ArrayBlockingQueue是一个用数组实现的有界阻塞队列。此队列按照先进先出(FIFO)的原则对元素进行排序。默认情况下不保证访问者公 平的访问队列,所谓公平访问队列是指阻塞的所有生产者线程或消费者线程,当队列可用时,可以按照阻塞的先后顺序访问队列,即先阻塞的生产者线程,可以先往 队列里插入元素,先阻塞的消费者线程,可以先从队列里获取元素。通常情况下为了保证公平性会降低吞吐量。

2 LinkedBlockQueue 无界的阻塞队列

LinkedBlockingQueue是一个用链表实现的有界阻塞队列。此队列的默认和最大长度为Integer.MAXVALUE。此队列按照先进先出的原则对元素进行排序。

3 priorityBlockingQueue 有优先级的无界阻塞队列

PriorityBlockingQueue是一个支持优先级的无界队列。默认情况下元素采取自然顺序排列,也可以通过比较器comparator来指定元素的排序规则。元素按照升序排列。

4 DelayQueue 延迟执行队列,到了指定时间才会取出改队列的值,否知一直阻塞。

5 ConcurrentLinkedQueue

几种常见queue