ThreadLocal - 如果我们在构造函数中设置值,它是否必需?

时间:2010-12-21 00:09:21

标签: java thread-local

我有一个实现Callable< String>的MyThread类。该类有一个构造函数,它接受像blockqueue和其他参数。在我的主类中,我使用新的阻塞队列和其他参数来实例化此类MyThread。此外,我维护两个映射,一个用MyThread参考保持一个唯一参数作为键,另一个用同一个唯一键保持阻塞队列引用。

在此过程中,我从hashmap获取此阻塞队列,添加我的自定义消息并获取相应的MyThread实例并提交到ThreadPoolTask​​Executor(Spring版本)。

据我所知,每个线程都应该获得自己的值副本(比如阻塞队列等),因为我在构造过程中传递它们,稍后使用ThreadPoolTask​​Executor.submit(myThreadObj)创建一个线程。我只是想知道是否有人可以确认这是否正确或者我是否需要在这种情况下使用ThreadLocal。到目前为止测试,我没有遇到问题,但我还没有进行负载测试。

提前致谢。

1 个答案:

答案 0 :(得分:6)

您已经有效地重新发明了ThreadLocal。享受!