- 博客(6)
- 收藏
- 关注
原创 HyperLogLog全部源码解析
版本是2020.09.10更新的英文注释就不贴了太长了,感兴趣的可以去github自己去搜索。https://github.com/redis/redis/blob/unstable/src/hyperloglog.cinclude “server.h”include <stdint.h>include <math.h>struct hllhdr{ char magic[4]; //魔术字符串,标识是hyperloglog uint8_t e
2020-09-24 14:01:48
944
原创 Spring容器启动过程源码阅读
这一版慢慢更新,慢慢读,慢慢写,仅供参考。new 一个AnnotationConfigApplicationContextAnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);AbstractApplicationContext这个是父类的静态代码块 先加载ContextClosedEvent类,以避免出现奇怪的类加载器问题。(不懂贴的谷歌翻译。)static
2020-11-16 01:31:27
255
原创 synchronized各种状态下hash存放位置的探索与证明
markOop(对象头)在openjdk源码中,我们所说的对象头就是一个markOop的对象,这里贴一个markoop源文件的openjdk源码地址:http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/c92ba514724d/src/share/vm/oops/markOop.hpp简单的看一下37-54行的注释。// 32 bits:// --------// hash:25 ------------>| a
2020-10-28 15:47:19
1056
3
原创 CountDownLatch源码阅读分析
最近有点着迷,countDownLatch还是比较简单的。也是Doug Lea之笔,其实思想都差不多。构造器方法public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); this.sync = new Sync(count); }看看他的aqsprivate static final class Sync e
2020-10-24 16:29:34
196
原创 ReentrantReadWriteLock之ReadLock加锁解锁过程源码解析
加锁public void lock() { sync.acquireShared(1); }public final void acquireShared(int arg) { if (tryAcquireShared(arg) < 0) doAcquireShared(arg); }tryAcquireShared方法protected final int tryAcquireShared(int u
2020-10-22 22:30:59
288
原创 ReadWriteLock源码阅读之WriteLock加锁解锁过程源码分析
写的有点乱,因为无论是ReadWriteLock还是ReentrantLock加锁解锁过程都很绕。加锁public void lock() { sync.acquire(1); }public final void acquire(int arg) { if (!tryAcquire(arg) && acquireQueued(addWaiter(Node.EXCLUSIVE), arg))
2020-10-22 19:24:22
321
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅