java
1.8
源码
jdk1.8.0_111
JDK
1.8
源码注释
InheritableThreadLocal跟ThreadLocal差不多,关键点在Thread#init方法中会对Thread中的实例变量inheritableThreadLocals进行赋值操作,将父线程的本地变量复制到子线程中
首先通过ServiceLoader.load方法生成一个ServiceLoader实例
然后在遍历的过程中去解析文件中的内容,去生成具体的实现类
然后再去调用具体的实现方法
只有在用到某个实现类的时候才会去解析文件中的内容,而且是全部解析,即并不是我们需要的实现类也会解析。而且需要遍历才能找到我们想要的那个实现类。
文件中的内容被加载一次,然后被缓存起来,下次直接取就行。
如果想要重新加载,可以调用reload()方法
2021-05-20 16:03:21
20.56MB
系统开源
1