Java并发-BlockingQueue
阻塞队列长用于生产者消费者场景,生产者添加元素,消费者获取元素。BlockingQueue是存放元素的容器,它提供了线程安全的队列访问方式,JUC下面很多高级同步类都是基于它实现的。 1 概述 阻塞队列(BlockingQueue)是一个支持两种附加操作的队列。支持附加阻塞的插入和移除操作。 支持阻塞的插入:当队列满时,插入操作会被阻塞,直到队列不满。 支持阻塞的移除:当队列空时,移除操作会被阻塞,直到队列不空。 阻塞队列不可用时,操作处理方式 方法\处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put(e) offer(e, time, unit) 移除方法 remove() poll() take() poll(time, unit) 检查方法 element() peek() 无 无 抛出异常:队列满时,若继续插入元素会抛出IllegalStateException;当队列为空时,若获取元素则会抛出NoSuchElementException异常。 返回特殊值:向队列插入元素时,会返回是否插入成功true/false;获取元素时,成...