Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。 volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为 ...
分类:
编程语言 时间:
2020-07-08 01:14:42
阅读次数:
79
从这篇文章开始分析JDK源码中AQS的底层实现原理,作为多线程访问共享资源的同步器框架基础实现,涉及到的东西还是比较多的,一起来看看传说中的AQS实现吧 ...
分类:
其他好文 时间:
2020-07-04 13:49:31
阅读次数:
65
背景 最近在很多JDK源码中都看到了Treiber stack这个单词。 比如CompletableFuture中的: volatile Completion stack; // Top of Treiber stack of dependent actions 比如FutureTask中的: /* ...
分类:
其他好文 时间:
2020-07-03 00:37:03
阅读次数:
81
目录 1. 类加载的过程 2. jvm核心类加载器 3. 剖析类加载委派机制 4. 自定义类加载器 5. tomcat类加载机制 一. 类加载的过程 二. jvm核心类加载器 三. 剖析类加载委派机制 四. 自定义类加载器 五. tomcat类加载机制 ...
分类:
其他好文 时间:
2020-06-27 09:44:26
阅读次数:
74
一、导入jdk源码 二、jdk源码阅读 参考资料: idea导入JDK源码 jdk1.8-source-code-read ...
分类:
其他好文 时间:
2020-06-23 15:49:52
阅读次数:
46
系列目录spi01-spi是什么?入门使用spi02-spi的实战解决slf4j包冲突问题spi03-spijdk实现源码解析spi04-spidubbo实现源码解析spi05-dubboadaptiveextension自适应拓展spi06-自己从零手写实现SPI框架spi07-自动生成SPI配置文件实现方式javaSPI加载流程1应用程序调用ServiceLoader.load方法Servic
分类:
编程语言 时间:
2020-06-19 10:25:43
阅读次数:
59
系列目录 spi 01-spi 是什么?入门使用 spi 02-spi 的实战解决 slf4j 包冲突问题 spi 03-spi jdk 实现源码解析 spi 04-spi dubbo 实现源码解析 spi 05-dubbo adaptive extension 自适应拓展 spi 06-自己从零手 ...
分类:
编程语言 时间:
2020-06-19 01:16:46
阅读次数:
66
常用设计模式思维导图,大部分设计模式在spring和jdk源码中都有体现。 在学习spring源码前,有必要花一定时间了解设计模式。 ...
分类:
其他好文 时间:
2020-06-19 00:33:41
阅读次数:
88
集合类分为两个分支,Collection与Map,其中Collection接口继承了Iterator接口,继承Iterator接口的类可以使用迭代器遍历元素(即Collection接口的类都可以使用),今天我们从相同点、不同点、以及JDK源码等各个方面来深入解析下,底层使用数组实现的两个集合类:Ar ...
分类:
编程语言 时间:
2020-06-17 23:13:00
阅读次数:
60
一、概述 ReentrantLock类是在内部利用自己的内部类Sync继承了AbstractQueuedSynchronizer,实现了tryAcquire()方法,在这个方法中增强自己的功能,比如添加了重入和公平锁、非公平锁。ReentrantLock再将Sync作进一步的封装,开放出去Lock的 ...
分类:
其他好文 时间:
2020-06-17 01:06:59
阅读次数:
58