diff --git a/README.md b/README.md index 80f6a1eb..20e245ee 100644 --- a/README.md +++ b/README.md @@ -34,17 +34,23 @@ - + - + + + + + + + ## 目录 - [Java](#java) diff --git a/docs/java/Multithread/JavaConcurrencyAdvancedCommonInterviewQuestions.md b/docs/java/Multithread/JavaConcurrencyAdvancedCommonInterviewQuestions.md index 8c5a30a6..97cc51d8 100644 --- a/docs/java/Multithread/JavaConcurrencyAdvancedCommonInterviewQuestions.md +++ b/docs/java/Multithread/JavaConcurrencyAdvancedCommonInterviewQuestions.md @@ -338,11 +338,11 @@ ThreadLocalMap(ThreadLocal firstKey, Object firstValue) { 比如我们在同一个线程中声明了两个 `ThreadLocal` 对象的话,会使用 `Thread`内部都是使用仅有那个`ThreadLocalMap` 存放数据的,`ThreadLocalMap`的 key 就是 `ThreadLocal`对象,value 就是 `ThreadLocal` 对象调用`set`方法设置的值。 -![ThreadLocal数据结构](https://upload-images.jianshu.io/upload_images/7432604-ad2ff581127ba8cc.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/806) +![ThreadLocal数据结构](images/threadlocal数据结构.png) `ThreadLocalMap`是`ThreadLocal`的静态内部类。 -![ThreadLocal内部类](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/ThreadLocal内部类.png) +![ThreadLocal内部类](images/ThreadLocal内部类.png) ### 3.4. ThreadLocal 内存泄露问题 diff --git a/docs/java/Multithread/images/ThreadLocal内部类.png b/docs/java/Multithread/images/ThreadLocal内部类.png new file mode 100644 index 00000000..6997f5ca Binary files /dev/null and b/docs/java/Multithread/images/ThreadLocal内部类.png differ diff --git a/docs/java/Multithread/images/threadlocal数据结构.png b/docs/java/Multithread/images/threadlocal数据结构.png new file mode 100644 index 00000000..a5791ce5 Binary files /dev/null and b/docs/java/Multithread/images/threadlocal数据结构.png differ