797. 什么是阻塞队列?如何使⽤阻塞队列来实现⽣产者-消费者模型?

  1. JDK7提供了7个阻塞队列。(也属于并发容器)
    1. ArrayBlockingQueue :⼀个由数组结构组成的有界阻塞队列。
    2. LinkedBlockingQueue :⼀个由链表结构组成的有界阻塞队列。
    3. PriorityBlockingQueue :⼀个⽀持优先级排序的⽆界阻塞队列。
    4. DelayQueue:⼀个使⽤优先级队列实现的⽆界阻塞队列。
    5. SynchronousQueue:⼀个不存储元素的阻塞队列。
    6. LinkedTransferQueue:⼀个由链表结构组成的⽆界阻塞队列。
    7. LinkedBlockingDeque:⼀个由链表结构组成的双向阻塞队列。
  2. 概念:阻塞队列是⼀个在队列基础上⼜⽀持了两个附加操作的队列。
  3. 2个附加操作:
    ⽀持阻塞的插⼊⽅法:队列满时,队列会阻塞插⼊元素的线程,直到队列不满。
    ⽀持阻塞的移除⽅法:队列空时,获取元素的线程会等待队列变为⾮空。