【发布时间】:2013-06-05 05:23:48
【问题描述】:
我正在探索 Java 中的本地线程。我不明白为什么我们需要这门课。如果我只是简单地将一个新对象传递给每个线程以执行,我可以实现相同的目的,因为如果我使用 initialValue() 会发生同样的事情。我只是在 initialvalue() 中为每个线程返回一个新对象。
但是假设我有两个线程,ThreadOne:A 和 ThreadTwo B。现在我希望他们拥有自己的 SimpleDateFormat 类的副本。我可以通过在 ThreadLocal 类中扭曲 SimpleDateFormat 的对象然后使用 initialValue() 我可以返回 new SimpleDateFormat("yyyyMMdd HHmm"); 来做到这一点。我可以通过创建两个新的 SimpleDateFormat 对象并[将一个对象分别传递给 ThreadOne :A. 和 ThreadTwo :B. ThreadLocal 如何帮助我,从而实现相同的目的
问候,
【问题讨论】:
-
这里有一些不错的答案:stackoverflow.com/questions/817856/…
-
+1 提问。在编写多线程应用程序的大约 30 年中,我从未见过有说服力的关于线程局部变量的论据,我也从未觉得有必要使用它们。如果我需要一个“本地线程”的东西,那么它作为线程类的成员进入 - 所有成员函数都可以访问它,每个线程一个“东西”,工作完成。
-
感谢 +1 :) 。但我仍然认为我需要在他的主题上进行更多探索才能得到满意的答案。
标签: java multithreading thread-local