gpt4 book ai didi

java - 给定线程对象是否可以访问 ThreadLocal 变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:43 24 4
gpt4 key购买 nike

我想在另一个线程中访问线程局部变量。

例如

我有线程 1 的线程对象 A,

它有一个局部变量L1。

我有另一个线程 Thread-2,如何访问 Thread-2 中的 L1?谢谢

最佳答案

否,因为内存可见性。所有 ThreadLocal 基础结构都假定对线程本地对象的访问是线程受限的。如果另一个线程篡改了 threadLocal 对象的内容,则没有内存屏障让原始所有者线程知道它需要更新该对象的缓存版本,并且 JIT 不会知道在以下情况下考虑来自其他线程的修改推理它可以重新排序哪些指令;如果你更新它,原始线程可能仍然看到一个陈旧的版本,不知道发生了变化。

这是对 yshavit 的观察的补充,即篡改第三方库的内部通常是一个坏主意。

关于java - 给定线程对象是否可以访问 ThreadLocal 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com