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

标签 java thread-local

我有一个类 MyThread,它实现了 Callable 。该类有一个构造函数,它接受诸如阻塞队列等参数。在我的主类中,我使用新的阻塞队列和其他参数实例化 MyThread 类。另外,我维护两个映射,一个用于以唯一参数之一作为键来保留 MyThread 引用,另一个用于以相同的唯一键来保留阻塞队列引用。

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

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

提前致谢。

最佳答案

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

关于java - ThreadLocal - 如果我们在构造函数中设置值,是否需要它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495182/

相关文章:

java - 如何在 Spring MVC (3.0) 应用程序中处理 Ajax.Request 调用?

java - 将JDK1.5 ThreadLocal代码移植到JDK1.4

java - 线程局部仅初始化为零

multithreading - Pharo Smalltalk 中的 ThreadLocal 类

java - threadlocal 是否应该声明为最终字段

java - 动态主机页的 GWT RPC 序列化

java - 接收 CameraAccessException : CAMERA_ERROR (3) on CaptureSession. setRepeatingRequest()

java - Android 中的下一个/后退按钮可检索下一个/上一个记录

java - 有没有一种方法可以将数组名称作为字符串获取,以便我可以在程序中调用正确的数组名称?

java - ThreadLocal set() 然后立即 get() 并不总是获取值