阻塞型数据结构和非阻塞型数据结构

Java 并发 API 中提供了两种并发数据结构。

有时,非阻塞型数据结构会有一个与之等效的阻塞型数据结构。
例如, ConcurrentLinkedDeque 类是一个非阻塞型数据结构,而 LinkedBlockingDeque 类则是一个与之等效的阻塞型数据结构。

阻塞型数据结构的一些方法具有非阻塞型数据结构的行为。
例如, Deque 接口定义了 pollFirst() 方法,如果双端队列为空,该方法并不会阻塞,而是返回 null 值。
另一方面, getFirst() 方法在这种情况下会抛出异常。每个阻塞型队列的实现都实现了该方法。