- 博客(6)
- 收藏
- 关注
原创 【Java设计模式系列】行为型 - 观察者模式
观察者模式可以让多个有依赖关系的对象以一种松耦合的方式灵活配置依赖关系,并支持在运行时动态修正依赖关系。
2024-12-29 18:51:49
727
原创 ListenableFuture 源码分析
guava 的 ListenableFuture 实现巧妙的使用了装饰委派设计模式,对 JDK 自带的执行器进行了能力增强,核心线程运行能力依旧使用的 JDK,而不用另外开发。同时我们发现使用异步监听模式,主线程可以无阻塞的一直运行,不断地创建一个 Callable 任务,绑定一个新的 ListenableFuture,对应再绑定一个新的 CallbackListener。
2024-12-29 18:49:55
1366
原创 【Java设计模式系列】创建型 - 单例模式
一般项目里,建议使用饿汉方式,因为基本上会制作为单例的类都是需要随时使用的,所以节省到这部分资源的概率较低,而且尽可能在启动时即初始化好全部实例,而不建议按需时通过并发加锁的方式,影响系统吞吐能力,代价较大。只有在要明确需要实现延迟加载效果时,才使用懒汉式。懒汉式建议采用内部类实现方式,简洁同时线程安全,如果涉及到反序列化等需求时,可以尝试使用枚举方式,该方式实际上较少项目使用过,笔者接触过的项目还没有使用过这种枚举方式的。如果有其他特殊的需求,可以考虑使用双重校验锁方式。
2024-12-26 22:57:38
624
原创 ScheduledThreadPoolExecutor 源码分析
总结一下,整个 ScheduledThreadPoolExecutor 的运行逻辑,实际上基本还是 ThreadPoolExecutor 的操作,至少在此基础上扩展了定时执行的能力,而该定时执行的能力,都是靠一个延迟优先队列这个数据结构来支撑,以控制出队时机。
2024-12-26 22:47:06
668
原创 ThreadPoolExecutor 源码分析
以上我们主要分析了 ThreadPoolExecutor 的设计,同时分析了核心方法 execute 的源码。实际 ThreadPoolExecutor 也可以支持 submit,即提交任务,与 execute 不同的时,execute 提交后任务执行,没有返回值,而 submit 则可以返回一个 Future,并在后续可以从 Future 中获得任务的执行结果。
2024-12-26 22:44:46
1413
原创 Future 源码分析
本文主要讲解了 Future 模式的设计,并对其基本实现类 FutureTask 进行了源码分析,理解里面的原理。同时讲了关于任务执行的几种模式,最后也引申下 Future 的其他实现,其中就包括异步监听模式。
2024-12-26 22:40:19
1450
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人