1 概述

2 类图

JUC--队列概述 未完待续

3 详细说明

3.1 Queue

Queue接口继承于Collection接口,用于存储将要被使用的数据。也就是说Queue是一个队列,采用FIFO的方式,针对Queue接口,除了拥有Collection的方法之外,还拥有处理队列数据的独有方法。这些方法在处理失败情况的时候表现为两种行为,一种是直接抛出异常,一种返回false或者返回空。下面针对方法详细说明。

操作失败的处理 抛出异常 返回false或者null
添加 add offer
返回并移除(尾部的元素) remove poll
返回不移除(尾部的元素) element peek

这里我们需要注意的是Queue不建议插入null,因为在某些操作失败的情况下也会返回null。

3.2 BlockingQueue

BlockingQueue继承自Queue,处理包含Queue的功能之外,还支持阻塞等待。当获取数据的时候,如果队列中没有数据,将等待直到有数据或者超时。当存入数据的时候,如果没有空闲位置用于存放数据,将等待直到由空闲位置或者超时。下面我们具体来看这几种方式的方法。

  抛出异常 返回特殊值 阻塞 超时等待
添加 add offer put offer(Object,long,TimeUnit)
返回并移除(尾部的元素) remove poll take poll(long, TimeUnit)
返回不移除(尾部的元素) element peek    

3.3 AbstractQueue

 

相关文章: