Java 中的 LinkedBlockingQueue 类

Java 中的 LinkedBlockingQueue 是 java.util.concurrent 包的一部分,并实现了 BlockingQueue 接口。它提供了一个线程安全的、有界的或无界的队列,用于在生产者-消费者场景中管理任务。该队列可用于多线程环境,其中一个线程产生数据,而其他线程消费这些数据。

  • 这个类是线程安全的。
  • 该队列支持阻塞操作。
  • 如果为构造函数提供了容量,它就变成了一个有界队列,意味着它能容纳的元素数量是有限的。
  • 如果没有提供容量,该队列是无界的,可以根据添加的元素数量按需增长。
  • LinkedBlockingQueue 遵循先进先出 (FIFO) 的顺序来插入和移除元素。

示例: 这个例子演示了如何将元素插入 LinkedBlockingQueue 并打印其内容。

Java


CODEBLOCK_1a5bd853

Output

LinkedBlockingQueue is: 
Geek 1
Geek 2
Geek 3

LinkedBlockingQueue 的层级结构

!LinkedBlockingQueue-Class-in-Java

LinkedBlockingQueue 的声明

在 Java 中,LinkedBlockingQueue 的声明可以这样做:

> LinkedBlockingQueue queue = new LinkedBlockingQueue();

注意:这里的 Type 是队列将要存储的元素类型(例如 String, Integer 等)。

构造函数

构造函数

描述

LinkedBlockingQueue()

这将创建一个容量为 Integer.MAXVALUE 的 LinkedBlockingQueue。

LinkedBlockingQueue​(int capacity)

这将创建一个具有给定(固定)容量的 LinkedBlockingQueue。

LinkedBlockingQueue​(Collection c)

这将创建一个容量为 Integer.MAXVALUE 的 LinkedBlockingQueue,最初包含给定集合的元素,按集合迭代器的遍历顺序添加。示例 1:创建一个 LinkedBlockingQueue 并使用 add() 方法向其中插入元素。

Java


CODEBLOCK_ce2df6c1

Output

LinkedBlockingQueue:[1, 2, 3]

示例 2: 创建一个具有指定初始容量的 LinkedBlockingQueue 并向其中添加元素。

Java


CODEBLOCK_2900573e

Output

LinkedBlockingQueue:[1, 2, 3]

示例 3: 使用像 Vector 这样的集合来创建 LinkedBlockingQueue 以初始化队列。

Java


CODEBLOCK_7a602f39

Output

LinkedBlockingQueue:[1, 2, 3]

对 LinkedBlockingQueue 执行各种操作

1. 添加元素:我们可以使用 add() 方法将元素插入到 LinkedBlockingQueue 中。

Java


import java.ut

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/40738.html
点赞
0.00 平均评分 (0% 分数) - 0