06 2020 档案

摘要:一、ThreadLocalMap源码分析 Entry数据结构 ThreadLocalMap是threadLocal一个静态内部类,和大多数容器一样内部维护了一个数组,同样的threadLocalMap内部维护了一个Entry类型的table数组。 源码: /** * The table, resiz 阅读全文
posted @ 2020-06-20 22:20 Geek仁杰 阅读(137) 评论(0) 推荐(0)
摘要:一、ThreadLocal能做什么? "线程本地变量"或"线程局部变量" 作用域为当前线程,而不是某个具体任务。 声明周期和线程的声明周期相同(JDK实现中比线程的生命周期更短,减少了内存泄漏的可能)。 线程与任务剥离,从而达到线程封闭的目的。 二、存在的问题 线程死亡之后,任务对象可能仍然存在(这 阅读全文
posted @ 2020-06-20 22:11 Geek仁杰 阅读(206) 评论(0) 推荐(0)
摘要:一、B-Tree索引的底层结构 所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同,如图所示,B-Tree索引的底层数据结构一般是B+树,反应了MyISAM索引是如何工作的。 二、B-Tree索引的使用规则 B-Tree索引适用于全键值、键值范围和键前缀查找,其中键前缀查找只适用于根据最左前缀 阅读全文
posted @ 2020-06-17 23:10 Geek仁杰 阅读(301) 评论(0) 推荐(0)
摘要:ReentrantLock是什么? ReentrantLock重入锁,递归无阻塞的同步机制,实现了Lock接口; 能够对共享资源重复加锁,即当前线程获取该锁,再次获取不会被阻塞; 支持公平锁和非公平锁。 UML图 公平锁 2.非公平锁 问题: 重入性的实现原理; 公平和非公平锁。 Reentrant 阅读全文
posted @ 2020-06-15 22:33 Geek仁杰 阅读(248) 评论(0) 推荐(0)