首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java集合--阻塞队列(BlockingQueue)

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

作者头像
贾博岩
发布2018-05-11 15:55:43
6210
发布2018-05-11 15:55:43
举报
文章被收录于专栏:博岩Java大讲堂博岩Java大讲堂

1 BlockingQueue

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

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

Java集合--Queue队列介绍

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

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

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

BlockingQueue

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

public interface BlockingQueue<E> extends Queue<E> {
    
    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<? super E> c);

    int drainTo(Collection<? super E> c, int maxElements);
}

添加方法:

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

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

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

获取方法:

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

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

移除方法:

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

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

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

BloeckingQueue成员:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 BlockingQueue
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档