本篇将详细介绍BlockingQueue,以下是涉及的主要内容: BlockingQueue的核心方法 阻塞队列的成员的概要介绍 详细介绍DelayQueue、ArrayBlockingQueue、LinkedBlockingQueue的原理 线程池与BlockingQueue 1、初识阻塞队列 在 ...
分类:
其他好文 时间:
2019-08-20 18:45:09
阅读次数:
74
1. 阻塞队列的应用场景 队列示意图 我们来看一个场景,监控文件变化的时候,我们开一个线程获取变化了的文件名,拿到之后我们会做解析,查找数据库等等其他操作。如果我们对这两个操作分开统计它们的处理时间,会发现后面的解析需要的时间远远大于前面得到文件名的时间。 文件监控与处理 这时如果监控文件变化的线程 ...
分类:
其他好文 时间:
2019-08-14 14:24:35
阅读次数:
92
Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。 这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉及到的技术原理十分丰富。为了更好地把并发知识形成一个体系,也鉴于本人没有能力写出这类文章,于是参考 ...
分类:
编程语言 时间:
2019-08-11 15:33:48
阅读次数:
135
1、Spring中ioc的概念 提到ioc那就不得不提控制反转和依赖注入 控制反转:原本我们创建对象时需要调用对象的构造方法,手动进行对象创建,现在,我们将对象的创建销毁交由spring容器来做,它通过反射来创建对象,我们用完之后对对象进行销毁。 依赖注入:通常的业务模块都需要调用两个或两个以上的对 ...
分类:
其他好文 时间:
2019-08-09 15:34:12
阅读次数:
87
LinkedList 实现了双向队列 Deque,LinkedList允许添加null元素PriorityQueue 有优先级的无界队列ConcurrentLinkedQueue 底层是链表 线程安全的 ArrayBlockingQueue 底层是数组 有公平策略/非公平策略的有界的阻塞队列Link ...
分类:
其他好文 时间:
2019-08-06 14:19:44
阅读次数:
77
package com.dh.learn.queue; import java.util.concurrent.DelayQueue; import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit; public ... ...
分类:
其他好文 时间:
2019-08-06 12:28:14
阅读次数:
84
package com.dh.learn.queue; import java.util.concurrent.SynchronousQueue; // SynchronousQueue put/take 操作必须匹配,否则线程等待,直到与当前操作匹配的操作出现 // SynchronousQueu... ...
分类:
其他好文 时间:
2019-08-06 12:24:23
阅读次数:
95
背景 因为在工作中经常会用到阻塞队列,有的时候还要根据业务场景获取重写阻塞队列中的方法,所以学习一下阻塞队列的实现原理还是很有必要的。(PS:不深入了解的话,很容易使用出错,造成没有技术深度的样子) 阻塞队列是什么? 要想了解阻塞队列,先了解一下队列是啥,简单的说队列就是一种先进先出的数据结构。(具 ...
分类:
编程语言 时间:
2019-08-03 22:00:00
阅读次数:
120
? 在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现线程安全队列Concu ...
分类:
编程语言 时间:
2019-08-03 20:03:50
阅读次数:
104
PriorityBlockingQueue 带优先级的无界的阻塞队列 package com.dh.learn.queue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlocking... ...
分类:
其他好文 时间:
2019-07-31 13:17:24
阅读次数:
89