`

JDK学习--java.util.concurrent阻塞队列--1

阅读更多
PriorityBlockingQueue 是具有无界限容量的队列,它利用所包含元素的 Comparable 排序顺序来以逻辑顺序维护元素。可以将它看作 TreeSet 的可能替代物。例如,在队列中加入字符串 One、Two、Three 和 Four 会导致 Four 被第一个取出来。对于没有天然顺序的元素,可以为构造函数提供一个 Comparator 。不过对 PriorityBlockingQueue使用时需要注意,从 iterator() 返回的 Iterator 实例并不一定按照优先级顺序返回元素。如果必须以优先级顺序遍历所有元素,那么让它们都通过 toArray() 方法并自己对它们排序,像 Arrays.sort(pq.toArray())。

新的 DelayQueue 实现可能是其中最有意思(也是最复杂)的一个。加入到队列中的元素必须实现新的 Delayed 接口(只有一个方法 —— long getDelay(java.util.concurrent.TimeUnit unit))。因为队列的大小没有界限,使得添加可以立即返回,但是在延迟时间过去之前,不能从队列中取出元素。如果多个元素完成了延迟,那么最早失效/失效时间最长的元素将第一个取出。实际上没有听上去这样复杂。
分享到:
评论

相关推荐

    jdk-8u20-docs-all.zip

    - `java.lang.Thread`和`java.util.concurrent`:提供了多线程编程的支持,包括创建和管理线程、线程同步和并发工具。 4. **JDBC**: - `java.sql`:提供了与数据库交互的接口和类,如`Connection`、`Statement`...

    jdk-api-1.6-English.rar_API1.6 Engli_jdk 6 api en_jdk1.6 api en_

    2. **并发处理**:在JDK 1.6中,引入了`java.util.concurrent`包,包含了许多并发工具类,如线程池、同步容器、并发队列等,提高了多线程程序的可维护性和性能。 3. **动态代理**:`java.lang.reflect.Proxy`类和`...

    backport-util-concurrent_java_backport_源码.zip

    backport-util-concurrent是一个Java库,它的主要目的是将Java 5中的并发工具类(java.util.concurrent)回移植到Java 1.3和1.4等早期版本。这个库使得开发者在不支持Java 5新特性的环境中也能使用高级的并发控制...

    A-JUC-JVM-Java并发知识..pdf

    Java并发编程包(java.util.concurrent,简称JUC)封装了大量用于高并发编程的工具类和接口,其中涉及了线程池、阻塞队列、同步器、原子操作类等。在并发环境下,可以有效降低线程创建和管理的复杂性。 #### Java...

    java的concurrent用法详解

    随着Java 1.5的发布,Sun公司(现在是Oracle公司的一部分)引入了`java.util.concurrent`包,这是一个革命性的进步,极大地简化了并发编程的工作,并增强了程序的稳定性和效率。通过`java.util.concurrent`提供的...

    JDK_API_1.8

    1. **基础类库**:包括`java.lang`、`java.io`、`java.util`等包。`java.lang`是所有Java程序的基础,包含了基本类型转换、对象创建、异常处理等基础功能。`java.io`提供了输入/输出流,用于数据的读写操作。`java....

    Java并发编程--BlockingQueue.docx

    BlockingQueue 是 Java 并发包(java.util.concurrent)中的一个接口,它扩展了 Queue 接口,并引入了线程安全的特性,特别适合于多线程环境下的数据共享。 BlockingQueue 的核心设计是其在并发环境下提供了高效的...

    java 银行业务队列简单模拟

    在Java中,我们可以使用JDK提供的`java.util.concurrent`包中的`BlockingQueue`接口来实现线程安全的队列。`BlockingQueue`提供了一种在多线程环境下安全插入、删除和检查元素的方法,同时支持阻塞操作,当队列为空...

    实战Java高并发程序设计第二版随书代码

    - **java.util.concurrent** 包:学习并发工具类,如Semaphore(信号量)、CountDownLatch(计数器)、CyclicBarrier(回环栅栏)、Exchanger(交换器)等,它们提供了高级并发控制手段。 3. **并发容器** - **...

    Java JDK1.5 生产消费者模式解决方案

    在JDK 1.5及以后的版本中,Java引入了`java.util.concurrent`包,其中包含了一些强大的并发工具类,如`Lock`接口和`Condition`接口,这些工具大大提升了生产者消费者模式的实现效率和线程安全性。 生产者消费者模式...

    JavaAPI文档中文版

    `java.util`包含了集合框架、日期时间、队列、栈、散列映射等常用工具类。 2. **集合框架**:在`java.util`包中,集合框架是Java API的重要组成部分,它提供了List、Set、Map等接口,以及ArrayList、LinkedList、...

    [Java并发编程实践].(Java.Concurrency.in.Practice).Brian.Goetz.文字版

    - `java.util.concurrent`包中的关键类和接口介绍。 3. **线程安全与同步机制** - 线程安全性的定义及其重要性。 - 同步方法与块的使用场景及优缺点。 - 不同类型的锁(如ReentrantLock)以及它们的工作原理。 ...

    JavaAPI超全

    Java API是Java编程语言的核心,它是Java开发工具包(JDK)的一部分,为开发者提供了大量预定义的类和方法,方便进行各种计算、输入/输出、网络通信、数据处理等任务。这个“Java API超全”文件包含了46个常用的Java...

    JDK自带的延迟队列-DelayQueue

    在Java的并发编程中,`DelayQueue`是一个非常特殊的队列,它属于并发包`java.util.concurrent`的一部分。`DelayQueue`是一个基于优先级队列(PriorityQueue)实现的无界阻塞队列,它的主要特性是元素只有在达到指定...

    Java API文档中文版

    1. **基础类库**:这是Java的核心,包括`java.lang`、`java.io`、`java.util`等包,涵盖了基本类型操作、输入/输出、集合框架、日期时间处理等功能。 - `java.lang`包:所有Java程序都会自动导入这个包,包含了如`...

    良葛格Java JDK 5.0学习笔记

    10. **并发改进**:JDK 5.0引入了`java.util.concurrent`包,提供了高级并发工具,如线程池、阻塞队列、同步器等,使得多线程编程更加高效和易于管理。 这些只是JDK 5.0中部分重要的新特性。通过深入学习《良葛格...

    JavaThread.pdf

    - 通过java.util.concurrent包下的BlockingQueue实现,可以创建生产者消费者模型。 - 阻塞队列包括ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、DelayQueue等,提供线程安全的队列操作。 7....

    Java并发编程实践-03章-使用JDK并发包构建程序1

    JDK并发包(java.util.concurrent)提供了丰富的工具和类,使得开发人员能够有效地管理和控制并发执行的任务。本章将深入探讨如何使用JDK并发包来构建程序。 **3.1 java.util.concurrent概述** `java.util....

    Java 常见并发容器总结

    JDK 提供的这些容器大部分在 `java.util.concurrent` 包中。 - **`ConcurrentHashMap`** : 线程安全的 `HashMap` - **`CopyOnWriteArrayList`** : 线程安全的 `List`,在读多写少的场合性能非常好,远远好于 `...

Global site tag (gtag.js) - Google Analytics