-6

可能重复:
何时以及如何使用 ThreadLocal 变量?

我对本地线程的了解是 .

1) Thread Local 必须声明为public static final

2) Thread Local 是当前线程的局部变量。

4

3 回答 3

2

它不需要公开

但它本质上是一个 Map ,您只能将当前 Thread 作为键获取,并且当尚未设置值时它会自动初始化

这实现了线程本地存储,因此您可以拥有“公共静态”变量而无需对其进行同步

于 2012-05-16T17:51:46.377 回答
1

在您的陈述中找不到问题,但让我试试:

1) Thread Local 必须声明为 public static final 。

不是真的,事实上ThreadLocal可以是私有的,不必是static并且可以是非最终的。不知道你在哪里见过这样的要求。

2) Thread Local 是当前线程的局部变量。

正确的。您可以想象这ThreadLocal是一个映射,其中键是线程,值是实际变量。但它以更好的方式实施。

于 2012-05-16T17:51:34.613 回答
0

Threadlocal 为每个线程创建您指定的类型的单独实例(它是通用的)。您可以简单地使用它的 get() 方法来访问它。此方法将始终返回当前线程的值。

于 2012-05-16T18:42:46.727 回答