
1 AoEiuV020CN 2022 年 10 月 19 日 不明白你说的 map ,是指所有线程共用一个 map 然后 thread 当 key 吗?这样共用 map 不就有线程冲突的可能了,不等价吧, |
2 asfdsafdas OP @AoEiuV020CN 我的理解大概这个意思 []( https://imgse.com/i/xs3w5Q) |
3 zxCoder 2022 年 10 月 19 日 @asfdsafdas 看不出这个线程有什么关系?除了类名 |
4 AoEiuV020CN 2022 年 10 月 19 日 @asfdsafdas #2 这不就是个普通的对象,拥有一个普通的 map ,看不出来你想设计什么, |
5 enoc 2022 年 10 月 19 日 可能是写 Threadlocal 的时候还没有 HashMap ? https://stackoverflow.com/questions/30482441/why-doesnt-threadlocal-use-java-util-hashmap-to-store-value-but-customize-one |
6 SoloCompany 2022 年 10 月 19 日 ThreadLocal 在抽象上的确就是一个 Map 啊 (实际上实现也是), 只不过这个 map 的 key 不是你想象中的 string, 而是 ThreadLocal 定义的变量本身的抽象 |
8 bk201 2022 年 10 月 19 日 你反问他为什么 |
9 xilou31 2022 年 10 月 19 日 1 因为 Thread 类是线程呀,线程这个概念是没有 Map 的。 这应该是叫做面向对象编程设计原则里面的「单一功能原则」? |
10 zoyua 2022 年 10 月 19 日 因为 threadlocal 就是这么设计的,你看源码,它就是用 ThreadLocalMap 存的 |
11 leonshaw 2022 年 10 月 19 日 如何拿到当前线程的 Thread ? 把 Thread 对象存到 ThreadLocal 里。 |
12 7911364440 2022 年 10 月 19 日 在 Thread 类中定义一个 Map 也是没问题的,我觉得正确答案应该就是 5 楼说的,实现 ThreadLocal 的时候还没有 HashMap |