blockingQueue实为阻塞队列,数据由消费者线程、生产者线程共享。消费者产生数据放入阻塞队列,倘若阻塞队列已满,则生产者线程被阻塞直到消费者线程取出数据或者是直接返回失败,若队列数据为空,则消费者线程阻塞直到生产者线程放入数据或者直接返回失败。且阻塞队列的数据为先进先出的规则。
常用api
offer(E e) 向阻塞队列放入数据,倘若阻塞队列已满,则直接返回false。
offer(E e, long timeout, TimeUnit unit) 向阻塞队列放入数据,倘若timeout时间过后数据还未放入队列,则直接返回false。
put(E e) 向阻塞队列放入数据,倘若阻塞队列已满,则生产线程阻塞直到消费线程取出数据。
poll() 向阻塞队列取出数据,倘若阻塞队列没有数据,则直接返回false。
poll(long timeout, TimeUnit unit) 向阻塞队列取出数据,倘若timeout时间过后依然没有取出数据,则直接返回false。
take() 向阻塞队列放入数据,倘若阻塞队列已满,则消费线程阻塞直到生产线程放入数据。
drainTo():一次