首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
源码
订阅
拐弯没有路
更多收藏集
微信扫码分享
微信
新浪微博
QQ
26篇文章 · 0订阅
Google guava源码之EventBus
1.学些其架构设计思想,看看怎么实现一个高可用,可扩展的架构。 2.学习一些好的java语法,毕竟你在实际代码过程中不会使用到所有的java语法,而在看源码的过程中,就有可能发现你未曾使用过,但比较巧妙的用法。 3.学习设计模式,开源代码常常会使用到一些设计模式,可以加深你对设…
HikariPool源码(一)初识
HikariPool是一个开源数据库连接池管理工具,以性能优秀著称。 1.HikariPool用到很多并发和线程管理工具,可以学习它们的用法。 2.有不少提升性能的用法,可以借鉴。 HikariPool的代码初看逻辑比较复杂,这里先从如何获取数据库连接开始认识它。获取连接相关的…
HikariPool源码(二)设计思想借鉴
synchronized是重量级的锁,在HikariPool中没有一处使用,都是通过Java并发工具类来解决线程安全问题。我们来看一些例子: volatile关键字定义的变量并不能保证线程安全,但他能保证一个线程的修改对另外一个线程立即可见。例如在PoolEntry和Concu…
HikariPool源码(三)资源池动态伸缩
1.为了提升资源池的性能,需要设置最小闲置资源数量,在资源池初始化时完成初始化;而当使用的资源超过最小闲置资源数,消费者释放回池中超过一定时间后要收缩到最小闲置资源数。 2.为了避免无限申请资源导致超出负载,需要设置最大资源数,池中资源不能超出最大资源数。 在Concurren…
HikariPool源码(四)资源状态
了解池资源的状态,以及状态如何变迁,用于池化资源设计参考。 | HikariPool | 资源池,客户端资源操作的入口。| | ConcurrentBag | 通用的并发包工具。 | | CopyOnWriteArrayList | 一个列表,用于存储资源,也就是PoolEnt…
HikariPool源码(五)工作线程以及相关工具类
1.1. houseKeepingExecutorService 1.2. addConnectionExecutor 1.3. closeConnectionExecutor 可以借用它的延迟执行线程的能力,来监控连接泄漏或者超过最大生命期。 4. 总结 end. <--感谢…
HikariPool源码(六)使用到的一些有用JAVA特性
1. AutoCloseable接口 实现了AutoCloseable接口的类,按照如下语法编写代码,在try块结束会自动调用close方法,而不需要显示调用,这样就不需要在finally块中显示调用close方法。 也就是可以少写一个finally块代码。 即关闭连接总是最先…
【极客源码】JetCache源码(一)开篇
1. 为什么是JetCache 2. 带着缓存知识点看源码 JetCache作为一个缓存工具,应具备缓存工具应有的能力,同时要能解决缓存的常见问题,带着缓存的相关知识点来看JetCache的源码,并对比知识点,这样收获更大。缓存的核心知识点如下: 2.1. 缓存应用场景 数据库…
【极客源码】JetCache源码(二)顶层视图
1. 项目地址 2. 工程结构 3. Level-0 概念模型 任何业务系统,在理解其核心业务概念后,后续就能在此基础上快速的做更深入的了解和延展,达到事半功倍的效果。下图是JetCache的核心概念,在代码中对应类或接口: 缓存,存储缓存数据,并提供get,put,remov…
【极客源码】JetCache源码(三)Cache类结构和代码解析1
1. 类结构 1.1. Cache 1.定义了缓存操作方法,如get,put,remove等等。 2.接口中使用了默认方法,提供默认实现。 3.接口中提供了大写的方法和小写的方法,小写为默认接口方法,大写的未实现,交由子类实现,其中小写方法调用大写方法使用了模板方法模式。 1.…