Guava EventBus 实战教程:事件驱动解耦
解耦这件事,最难的不是拆模块,是拆了以后让它们说话。直接方法调用把两个模块焊死,MQ 又重得没必要。Guava EventBus 给了中间那条路:发布方只管 post,订阅方只管 @Subscribe,双方互不认识。
Java BlockingQueue 实现原理详解
核心词:BlockingQueue、阻塞队列、生产者消费者、ReentrantLock、Condition、JUC、线程安全、队列阻塞在Java并发编程中,BlockingQueue(阻塞队列)是java.util.
JAVA并发之BlockingQueue(阻塞队列)
Java从JDK5开始在并发包内引入了BlockingQueue,它除了提供队列的FIFO功能之外,还提供了额外的功能,例如:当获取队列内容时发现队列为空,则等待其变为非空。
不允许还有Java程序员不了解BlockingQueue阻塞队列的实现原理
你可能想到使用线程池,是个办法,不过需要创建很多线程,还要考虑下游方法支不支持并发,如果是CPU密集任务,可能多线程比单线程处理速度更慢,因为需要频繁上下文切换。
多线程之阻塞队列BlockingQueue详解
上篇博文,我们简单的介绍了多线程之Semaphore,这篇我们重点介绍阻塞队列BlockingQueue。
Java:Queue基本操作详解
每个方法都存在两种形式:一种抛出异常,另一种返回一个特殊值。JDK中并发队列提供了两种实现,一种是高性能队列ConcurrentLinkedQueue,一种是阻塞队列BlockingQueue,两种都继承自Queue。
JDK源码详解——Semaphore,BlockingQueue,ArrayBlockingQueue
SemaphoreSemaphore 是并发包中的一个工具类,可理解为信号量。通常可以作为限流器使用,即限制访问某个资源的线程个数,比如用于限制连接池的连接数。
并发编程之ConcurrentLinkedQueue原理
概述Java 提供的线程安全的 Queue 可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是 BlockingQueue,非阻塞队列的典型例子是 ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。
高性能线程间消息传递库-Disruptor
高性能线程间消息传递库-Disruptor一、 Disruptor概述Disruptor是一个高性能的线程间消息传递库。它源于LMAX对并发性 、性能和非阻塞算法的研究,如今构成了其Exchange基础架构的核心部分。