Guava之EventBus源码分析

简介

事件总线。

有助于深入理解代码的功能和实现细节。

可以了解代码背后的逻辑、算法、数据结构和设计模式等方面,从而更好地理解代码的作用和功能。

可以学习到业界的最佳实践和设计模式。

这有助于提高自己的编程水平,使你能够编写更高质量、可扩展性和可维护性的代码。

代码结构

包:

com.google.common.eventbus

类:

文件 类型 描述
AllowConcurrentEvents 注解
AsyncEventBus 类 异步事件总线
DeadEvent 类 无订阅事件
Dispatcher 抽象类 分发器,有三种:PerThreadQueuedDispatcher LegacyAsyncDispatcher ImmediateDispatcher
EventBus 类 同步事件总线
Subscribe 注解 事件订阅注解
Subscriber 类 订阅者
SubscriberExceptionContext 类 订阅异常上下文
SubscriberExceptionHandler 接口 订阅异常处理器
SubscriberRegistry 类 单个事件总线的订阅者的注册

设计模式

观察者模式

发布订阅模式

核心类

分发器

1、PerThreadQueuedDispatcher

同步分发器

执行器

MoreExecutors.directExecutor()

2、LegacyAsyncDispatcher

异步分发器

执行器

自定义线程池

相关推荐
禾小西10 分钟前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨13 分钟前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车55537 分钟前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding1 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n2 小时前
【JUC】Lock 和 synchronzied 锁
java
西柚小萌新2 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛2 小时前
cpp学习笔记--常量指针
java·开发语言·算法
java资料站2 小时前
二、Spring AI Alibaba · ChatModel
java·windows·spring
十年Java程序媛2 小时前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端
caoerzhong2 小时前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源