我仍然对 ThreadLocal 的概念感到困惑。我已经阅读了 JavaDoc,以及此处发布的其他相关问题,但是所使用的行话并没有对我有太大帮助。
我有点理解 ThreadLocal,也就是说,每个线程都有自己的变量副本。那么……这与说……每次都构造新变量有何不同?
例如,以 DateFormatter 为例:
public void convertDate(String date)
{
// Contruct new date formatter for every invocation of the method.
DateFormatter df = new SimpleDateFormatter(...);
....
}
public void convertDate(String date)
{
// Getting date formatter from threadlocal.
DateFormatter df = threadLocal.get();
....
}
如果第二个所做的只是返回变量的新副本,那么第一个与第二个有何不同?
谢谢。