美文网首页
8.7 阻塞队列BlockingQueue

8.7 阻塞队列BlockingQueue

作者: jadefly | 来源:发表于2018-01-09 18:10 被阅读0次

简介

当调度器调度线程池执行任务时,生产者生产任务,消费者消费任务,那么这时就需要一个任务队列,生产者向队列里插入任务,消费者从队列里提取任务执行。调度器里就是通过BlockingQueue实现的队列。


状态

BlockingQueue最终会有四种状况,抛出异常、返回特殊值、阻塞、超时

状态

实现类

 BlockingQueue是个接口,有如下实现类:

ArrayBlockQueue:1.由数组支持的有界阻塞队列;

                                2.此队列按 FIFO(先进先出)原则对元素进行排序;

                                3.创建其对象必须明确大小,像数组一样;

LinkedBlockQueue:1.可改变大小的阻塞队列;

                                  2.FIFO先进先出;

                                  3.创建其对象如果没有明确大小,默认值是Integer.MAX_VALUE

                                  4.链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低;

PriorityBlockingQueue:1.类似于LinkedBlockingQueue

                                        2.但其所含对象的排序不是FIFO,而是依据对象的自然排序顺序或者是构造函数所带的Comparator决定的顺序;

SynchronousQueue:1.同步队列;

                                    2.同步队列没有任何容量,每个插入必须等待另一个线程移除,反之亦然;


相关文章

  • 8.7 阻塞队列BlockingQueue

    简介 当调度器调度线程池执行任务时,生产者生产任务,消费者消费任务,那么这时就需要一个任务队列,生产者向队列里插入...

  • 26. 并发终结之BlockingQueue

    线程池里面最重要的还有个并发容器,即阻塞队列BlockingQueue。BlockingQueue是阻塞队列的接口...

  • 阻塞队列 BlockingQueue

    阻塞队列 BlockingQueue BlockingQueue用法 BlockingQueue 通常用于一个线...

  • Java并发编程:阻塞队列

    Java并发编程:阻塞队列BlockingQueue 以上7类阻塞队列中有LinkedBlockingQueue,...

  • 探讨阻塞队列和线程池源码

    阻塞队列 非阻塞队列是一个先进先出的单向队列(Queue),而BlockingQueue阻塞队列实际是非阻塞队列的...

  • Android中的线程与线程池

    阻塞队列BlockingQueue 阻塞队列常用于生产者——消费者模型,生产者往阻塞队列插入数据,消费者往阻塞队列...

  • 阻塞队列

    BlockingQueue线程池的数据结构是阻塞队列BlockingQueue。(在多线程领域:所谓阻塞,在某些情...

  • Java并发-22.阻塞队列

    阻塞队列(BlockingQueue)是一种支持两个附加操作的队列: 支持阻塞的插入:队列满时,队列阻塞插入元素的...

  • 阻塞队列

    阻塞队列BlockingQueue不支持插入null元素,好好了解一下阻塞队列接口设计。 了解阻塞队列的接口方法后...

  • Java并发包之BlockingQueue

    一、什么是BlockingQueue BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻...

网友评论

      本文标题:8.7 阻塞队列BlockingQueue

      本文链接:https://www.haomeiwen.com/subject/dzfgnxtx.html