根据我的理解,ThreadLocal是那些其值不会在线程之间共享的变量,而是会被许多线程使用。
例如。如果我有一个变量,其当前值对于每个线程处理结果至关重要。我更愿意使该变量原子或相应的方法同步。
拥有ThreadLocal是否满足上述条件?
我看过很多帖子,都说可以使用 ThreadLocal 作为替代方案,而不是同步。
由于我是初学者,清晰而简单的解释会对我有所帮助。
提前致谢
最佳答案
您问的问题并不完全清楚。
我在这里可以看到两种情况:
- 变量的值在多个线程中发生变化,并且它应该对所有线程可见 - 在这种情况下,您应该使用同步(
ThreadLocal
变量不适用于此)。 - 变量的值是多个线程的初始值,但每个线程应该有自己的该值的副本并单独更改它 - 这是针对
ThreadLocal
.
关于java - 线程局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60883221/