`

Java集合--ArrayBlockingQueue

 
阅读更多
ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。
线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多线程访问竞争资源时,当竞争资源已被某线程获取时,其它要获取该资源的线程需要阻塞等待;而且,ArrayBlockingQueue是按 FIFO(先进先出)原则对元素进行排序,元素都是从尾部插入到队列,从头部开始返回。

注意:ArrayBlockingQueue不同于ConcurrentLinkedQueue,ArrayBlockingQueue是数组实现的,并且是有界限的;而ConcurrentLinkedQueue是链表实现的,是无界限的。

ArrayBlockingQueue的数据结构,如下图所示:


参考:http://blog.csdn.net/qq924862077/article/details/75653153

ArrayList线程不安全详解
http://blog.csdn.net/zhangxin961304090/article/details/46804065
分享到:
评论

相关推荐

    【死磕Java集合】-集合源码分析.pdf

    Java集合框架提供了多种数据结构和算法来存储和操作数据,包括LinkedList、ArrayList、HashMap、TreeMap、HashSet、TreeSet、ArrayBlockingQueue、PriorityQueue等。每种数据结构都有其特点和使用场景,需要根据实际...

    Java concurrency集合之ArrayBlockingQueue_动力节点Java学院整理

    Java concurrency集合之ArrayBlockingQueue_动力节点Java学院整理,动力节点口口相传的Java黄埔军校

    详细分析Java并发集合ArrayBlockingQueue的用法

    Java并发集合ArrayBlockingQueue的用法详解 Java并发集合ArrayBlockingQueue是Java并发集合框架下的一个重要组件,它提供了阻塞队列的实现,用于多线程环境下的并发操作。下面是对ArrayBlockingQueue的用法详解: ...

    线程-线程池-锁-集合-Map-队列.docx

    综上所述,线程、线程池、集合和队列是Java并发编程的核心概念,理解和掌握它们对于开发高效、稳定的并发应用程序至关重要。在实际开发中,应根据具体需求选择合适的线程管理策略、数据结构和同步机制,以实现高性能...

    Java 多线程与并发(16-26)-JUC集合- BlockingQueue详解.pdf

    Java中的`BlockingQueue`接口是Java并发编程的重要组件,它位于`java.util.concurrent`包下,主要用于线程间数据的同步和通信。`BlockingQueue`是一个支持线程安全的队列,它允许一个线程放入(插入)元素,而另一个...

    java集合详细解释

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的实现,使得开发者可以方便地存储和管理对象。这篇博文链接虽然没有提供具体的内容,但是我们可以基于Java集合框架的常见知识点进行...

    java中集合容器的详细介绍

    Java集合框架中的Set接口继承自Collection接口,它规定了不允许存储重复元素的集合。Set接口下有许多具体的实现类,如HashSet、TreeSet等,它们各有不同的特性。HashSet提供快速的插入和删除操作,但不保证元素的...

    java并发集合

    传统的Java集合,如ArrayList和HashMap,在多线程环境下如果不进行适当的同步控制,可能会引发数据不一致的问题。而并发集合则内置了线程安全机制,比如使用锁或者无锁算法来实现并发访问。 Java并发集合中最核心的...

    计算机后端-Java-Java高并发从入门到面试教程-发课程资料.zip

    - **阻塞队列BlockingQueue**:如ArrayBlockingQueue、LinkedBlockingQueue等,理解其在生产者-消费者模型中的应用。 4. **并发工具类** - **CountDownLatch**:用于计数的同步辅助类,常用于多线程协作。 - **...

    java-basic:java基础测试-java8

    Iterator(迭代器接口)Iterable(可迭代接口) -> Collection(集合接口)-> List(列表,线性表接口) :ArrayList、LinkedList-> Set(元素不重复的集合接口):HashSet、TreeSet-> Queue(队列): ArrayBlockingQueue、...

    java并发编程-超级大全整理

    - **Java Queue接口**:是Java集合框架的一部分,不允许插入`null`元素。 - **队列操作**:插入(add() / offer())、移除(remove() / poll())、检查(element() / peek())等。 - **JDK中的队列实现**:...

    30个Java经典的集合面试题!.zip

    以下是一些Java集合框架中的关键知识点,这些知识点可能出现在那30个经典面试题中: 1. **集合与数组的区别**: - 集合是对象的动态数组,可以存储不同类型的对象,而数组是固定大小的,只能存储同类型的数据。 -...

    Java面试常问题目.pdf

    2. Java集合框架: - Collection接口是所有单列集合的根接口。 - List接口下有ArrayList和LinkedList实现,前者基于动态数组实现,随机访问快;后者基于双向链表实现,插入和删除操作较快。 - Set接口下有HashSet...

    java常用的几种集合.doc

    Java集合框架是Java编程语言中一个非常重要的组成部分,主要用于存储和操作对象的集合。在Java中,集合类主要位于`java.util.*`包下,它们提供了多种数据结构,包括Set、List、Map以及Queue,这些数据结构都有各自...

    java并发编程-构建块

    5. **并发容器**:Java集合框架中的并发容器如`ConcurrentHashMap`、`ConcurrentLinkedQueue`等,设计时考虑了并发性能,避免了线程安全问题。这些容器内部使用了分段锁或 CAS(Compare and Swap)算法来保证线程...

    Java高并发经典文档-MOBI-可在电子书里查看

    - **并发集合**:包括线程安全的`Vector`、`Collections.synchronizedXXX`方法转换的同步集合,以及更高效的`ConcurrentHashMap`、`CopyOnWriteArrayList`等并发集合。 - **阻塞队列**:如`ArrayBlockingQueue`、`...

    nimbo-java-multi-threading:Java多线程演示代码

    - `java.util.concurrent`包提供了线程安全的集合类,如`ConcurrentHashMap`、`CopyOnWriteArrayList`等,它们内部实现了线程同步。 以上就是Java多线程的基本概念和关键知识点,`nimbo-java-multi-threading`项目...

    java.util包

    1. 集合框架:Java.util包是Java集合框架的基础,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些集合类为存储和操作对象提供了灵活的方式。例如,ArrayList实现了...

Global site tag (gtag.js) - Google Analytics