摘要: ConcurrentHashMap 源码目前在网络上已有众多解析。本文章主要关注方法 transfer,试图仔细解析该实现,如有错漏,请指正。 ConcurrenthashMap 的 transfer 主要是用于扩容重组阶段,当内部数组的容量值超过阈值时,将触发扩容重组, transfer 是该过程 阅读全文
posted @ 2020-11-17 23:15 阿全啊 阅读(214) 评论(2) 推荐(0) 编辑
摘要: 盖棺 问:Spring 是如何解决循环依赖的? 答:支持提前暴露当前正在创建的单例,这个单例可以是未完全初始化的。 问:三级缓存是必要的吗? 答:非必要,两个缓存可以支持,Spring 2.5.3 版本中,只使用两个缓存来解决循环依赖。 show you the code 欢迎移步地址:三级缓存非必 阅读全文
posted @ 2022-04-12 00:00 阿全啊 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 队列是一种常见的数据结构,主要特点是 FIFO,Java 为其定义了接口类:Queue,并提供了丰富的实现,有底层基于数组的[有界]队列,也有基于节点链接的无界队列,有阻塞队列,有非阻塞队列,还有并发安全的队列。 常见的队列实现的两种方式:数组、节点链接。 Java 对队列的基本实现在包:java. 阅读全文
posted @ 2021-06-07 08:37 阿全啊 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 阅读 Spring 源码,BeanFactory 是避不了的存在。而大家常见的使用场景,也是以下形式: ConfigurableApplicationContext ctx = SpringApplication.run(xxx.class); BeanFactory beanFactory = ( 阅读全文
posted @ 2021-05-16 17:53 阿全啊 阅读(352) 评论(0) 推荐(0) 编辑
摘要: JUC 并发类及并发相关类概览,持续补充... AQS 内部有两个队列,一个等待队列(前后节点),一个条件队列(后继节点),其实是通过链表方式实现; 等待队列是双向链表;条件队列是单向链表;条件队列如果被唤醒,将后接到等待队列上; 通过内部持有的 state,加以模板模式,提供了两种资源争抢模式:排 阅读全文
posted @ 2021-04-13 13:29 阿全啊 阅读(68) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap 源码目前在网络上已有众多解析。本文章主要关注其基于 Traverser 的遍历实现,试图仔细解析该实现,如有错漏,请指正。 ConcurrentHashMap 的 Traverser 主要是用于内部数组的遍历功能支持,如何实现在内部数组扩容阶段期间,其他线程也能够 阅读全文
posted @ 2020-12-15 22:47 阿全啊 阅读(169) 评论(0) 推荐(0) 编辑