二十八、阻塞队列之基本概念

49 阅读1分钟

阻塞队列之基本概念

生产者消费者概念

生产者消费者是一种设计模式。让生产者和消费者基于一个容器来解决强耦合问题

生产者和消费者彼此之间通过一个容器(队列)来进行通讯

JUC阻塞队列的常用存取方法

常用的存取方法都在JUC包下的BlockingQueue接口中

生产者存储方法:

  • add(E):添加数据到队列中,如果队列满了,无法存储,并且抛出异常
  • offer(E):添加数据到队列中,如果队列满了,返回false
  • offer(E, timeout, unit):添加数据到队列中,如果队列满了,阻塞timeout时间,过了时间依然没有添加成功,返回false
  • put(E):添加数据到队列中,如果队列满了,挂起线程,等待队列中有空闲位置,再存储数据

消费者取数据方法:

  • remove():从队列中移除数据,如果队列为空,抛出异常
  • poll():从队列中移除数据,如果队列为空,返回null
  • poll(timeout, unit):从队列中移除数据,如果队列为空,挂起线程timeout时间,等生产者存储数据,再获取
  • take():从队列中移除数据,如果队列为空,挂起线程,直到队列中有数据