【发布时间】:2012-05-24 07:56:41
【问题描述】:
我对本地线程的了解是。
1) Thread Local 必须声明为 public static final。
2) Thread Local 是当前线程的局部变量。
【问题讨论】:
标签: java thread-safety
我对本地线程的了解是。
1) Thread Local 必须声明为 public static final。
2) Thread Local 是当前线程的局部变量。
【问题讨论】:
标签: java thread-safety
不需要公开
但它本质上是一个 Map,您只能将当前线程作为键获取,并且当尚未设置值时它会自动初始化
这实现了线程本地存储,因此您可以拥有“公共静态”变量而无需对其进行同步
【讨论】:
在您的陈述中找不到问题,但让我试试:
1) Thread Local 必须声明为 public static final 。
不是真的,事实上ThreadLocal 可以是私有的,不必是static 并且可以是非最终的。不知道你在哪里见过这样的要求。
2) Thread Local 是当前线程的局部变量。
正确。您可以想象ThreadLocal 是一个映射,其中键是线程,值是实际变量。但它的实现方式要好得多。
【讨论】:
Threadlocal 为每个线程创建您指定类型的单独实例(它是通用的)。您可以简单地使用它的 get() 方法来访问它。此方法将始终返回当前线程的值。
【讨论】: