编程语言
首页 > 编程语言> > 并发编程 - 阻塞队列(二) - LinkedBlockingQueue

并发编程 - 阻塞队列(二) - LinkedBlockingQueue

作者:互联网

前言

LinkedBlockingQueue:由链表组成的有界阻塞队列。


源码分析


构造器

提供了三种构造器方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


插入


add

对已满队列插入元素,会抛出IllegalStateException异常。

在这里插入图片描述


offer

插入元素成功,则返回true;否则返回false。
在这里插入图片描述

在这里插入图片描述


put

如果队列已满,执行插入操作的线程会被阻塞,直到队列不满。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


offer(…)

如果队列已满,则超时等待,如果队列到截止时间仍然是满的状态,返回false。
在这里插入图片描述


删除


remove

执行删除操作时,如果队列为空,则抛出NoSuchElementException异常。
在这里插入图片描述


poll

如果队列为空,返回null。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


take

如果队列为空,对执行删除操作的线程阻塞,直到队列不为空。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


poll(…)

如果队列为空,进行超时等待,如果到超时的截止时间,队列仍然为空,则返回null。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


检查


element

返回但不删除队列的队首元素,如果为空,则抛出NoSuchElementException异常。

在这里插入图片描述


peek

返回但不删除队列的队首元素,如果为空,返回null。

在这里插入图片描述

标签:返回,删除,队列,编程,LinkedBlockingQueue,为空,如果,null
来源: https://blog.csdn.net/qq_34561892/article/details/111772672