目录 非阻塞队列 阻塞队列 双端队列 非阻塞队列(AbstractQueue) 队列介绍 1 ConcurrentLinkedQueue 先进先出队列 2 PriorityQueue 非并发的优先队列 非阻塞队列方法 1 add(E e) 将元素e插入队列末尾,如果插入成功,返回true;如果插入失 ...
分类:
其他好文 时间:
2018-12-24 00:01:20
阅读次数:
129
一、简介 Java提供了FIFO先进先出的阻塞队列实现,这其实是一种生产者消费者理念,可以通过阻塞队列将生产者和消费者进行解耦合。 LinkedBlockQueue是一种无界队列,但事实上它只是队列可容纳的最大值很大。通常,我们为了防止特殊情况,都会给队列设置一个边界。 JDK文档:http://t ...
分类:
数据库 时间:
2018-12-23 20:49:35
阅读次数:
333
1 生产者消费者模式概述 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理, 直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生 ...
分类:
编程语言 时间:
2018-12-22 23:27:06
阅读次数:
286
DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。 Delayed 一种混合风格的接口,用来标记那些应该在给定延迟时间 ...
分类:
其他好文 时间:
2018-12-19 13:21:44
阅读次数:
156
一、概述1.线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数;2.ThreadPoolEx ...
分类:
编程语言 时间:
2018-12-18 19:48:08
阅读次数:
185
一 Executors提供了一系列工厂方法用于创先线程池ThreadPoolExecutor线程池的具体实现类,一般用的各种线程池都是基于这个类实现的 返回的线程池都实现了ExecutorService 接口 二 corePoolSize:线程池的核心线程数,默认情况下可以一直存活。可以通过设置al ...
分类:
编程语言 时间:
2018-12-05 20:57:48
阅读次数:
204
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需 ...
分类:
数据库 时间:
2018-12-05 20:36:15
阅读次数:
171
前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和资源消耗都是很高的。线程池应运而生,成为我们管理线程的利器。Java 通过Executor接口,提供了一种标准的方法将任务的提交过程和执行过程解耦开来,并用Runnable表示任务。 下面,我们来分析一下 Java 线程池框架的实 ...
分类:
编程语言 时间:
2018-12-05 17:24:29
阅读次数:
131
一、String(字符串)字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习尊定基础。字符串类型实际上可以是字符串(简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频 ...
分类:
其他好文 时间:
2018-12-01 15:17:53
阅读次数:
218
一、概述 队列,又称为伫列(queue),是先进先出(FIFO,First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。 在Java中队列又可以分为两个大类,一种是阻塞队列和非阻塞队列。 1、没有实现阻塞
分类:
编程语言 时间:
2018-11-23 11:30:29
阅读次数:
239