Java集合--阻塞队列(BlockingQueue)

1 BlockingQueue

在此章节中,我们会对阻塞队列进行详细的介绍。

如果你对队列还不熟悉,可以先去看下以下几篇文章,或许对你的入门有所启发!

Java集合--Queue队列介绍

Java集合--Queue(Java中实现1)

Java集合--Queue(Java中实现2)

在讲解ArrayBlockingQueue之前,我们先来介绍下它的父类---BlockingQueue。

BlockingQueue

BlockingQueue是一个接口,是所有阻塞队列的父类,定义了阻塞队列的主要操作方法。

public interface BlockingQueue extends Queue {
    
    boolean add(E e);

    boolean offer(E e);

    void put(E e) throws InterruptedException;

    boolean offer(E e, long timeout, TimeUnit unit) throws InterruptedException;

    E take() throws InterruptedException;

    E poll(long timeout, TimeUnit unit) throws InterruptedException;

    int remainingCapacity();

    boolean remove(Object o);

    public boolean contains(Object o);

    int drainTo(Collection c);

    int drainTo(Collection c, int maxElements);
}

添加方法:

add:插入元素,如果队列满了,抛出异常(底层调用offer方法);

put:插入元素,如果队列满了,就等待;

offer:插入元素,如果队列满了,就直接返回false;

获取方法:

element(继承父类):如果队列为空,直接抛出异常(底层调用peek方法);

peek(继承父类):如果队列为空,则返回null;

移除方法:

remove:移除对应元素,如果队列为空,则返回false;

take:移除元素,如果队列为空,则一直等待;

poll:移除元素,如果队列为空,则返回null;

BloeckingQueue成员:

Java集合--阻塞队列(BlockingQueue)_第1张图片
image

你可能感兴趣的:(Java集合--阻塞队列(BlockingQueue))