gpt4 book ai didi

java - 关于Java内存模型的一个问题

转载 作者:行者123 更新时间:2023-12-02 00:42:49 26 4
gpt4 key购买 nike

几天前,我提出了一个问题,询问如何使用关键字“ volatile ”,我得到了答案。在此我要再次感谢那些帮助过我的人。然而,我脑海中出现了一个关于JMM的新问题,目前我知道有主存和线程自己独立的缓存(也许有更专业的术语),现在我想知道线程缓存中存储了什么,共享对象引用的副本(对象地址的副本)还是共享对象的副本?比如我声明一个对象 B b = new B();并且b可以被两个线程访问,那么当b被线程访问时,b是对象引用被复制并存储在线程自己的缓存内存中,或者是b的对象指向被复制并存储在线程自己的缓存内存中?谢谢。

最佳答案

任何由多个线程访问的内容都可能位于“线程缓存”中。如果引用是对象的一部分,则包括引用。它不会包含局部变量中保存的引用,因为它们位于堆栈上并且无法从其他线程访问。

所以答案确实是“两者”。

关于java - 关于Java内存模型的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5864850/

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