我对线程本地的了解是。
1)Thread Local必须声明为 public static final 。
2)Thread Local是当前线程的本地变量。
答案 0 :(得分:2)
它不需要公开
但它本质上是一个Map,你只能获取当前Thread作为键,当值尚未设置时它会自动初始化
这实现了线程本地存储,因此您可以拥有“公共静态”变量而无需对它们进行同步
答案 1 :(得分:1)
在你的陈述中找不到问题,但让我试试:
1)Thread Local必须声明为public static final。
事实并非如此,事实上ThreadLocal
可以是私有的,不一定是static
而且可以是非最终的。不知道你在哪里见过这样的要求。
2)Thread Local是当前线程的本地变量。
正确。您可以想象ThreadLocal
是一个映射,其中key是一个线程,value是实际变量。但它以更好的方式实施。
答案 2 :(得分:0)
Threadlocal为每个线程创建您指定类型的单独实例(它是通用的)。您只需使用它的get()方法即可访问它。此方法将始终返回当前线程的值。