请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

主内存和工作内存的几个问题

图片描述
我有个疑问,基本数据类型是直接存放在工作内存中的,那么这些数据会通过主内存共享吗?能通过主内存共享的是哪些数据呢?像工作内存中的行号指示器、Native方法信息以及这些方法中的局部变量是不是本身属于线程的,不会共享,只有主内存中的存储的才会共享,并且线程是把主内存中的数据拷贝一个副本到工作内存进行操作?对于引用类型的本地变量,它又是怎么拷贝副本到工作内存呢?
谢谢老师!

正在回答 回答被采纳积分+3

1回答

翔仔 2021-03-18 00:10:09

同学好,主内存是线程共享的;工作内存是从主内存中拷贝过来的变量副本以及访问方法得到的局部变量,属于线程私有;线程执行的时候用到某变量,首先要将变量从主内存拷贝的自己的工作内存空间,然后对变量进行操作:读取,修改,赋值等,这些均在工作内存完成,操作完成后再将变量写回主内存。这样同学可以理解主内存和工作内存的关系了吧,主内存共享的内容也迎刃而解

0 回复 有任何疑惑可以回复我~
  • 老师您好,那从工作内存对变量进行操作(修改,赋值等)后,原有主内存的变量值是否随着工作内存而改变;例如:主内存变量a =0; 工作内存复制一份后进行了修改 a=10;再写会主内存,那么主内存的a是0?还是10?
    回复 有任何疑惑可以回复我~ 2021-07-25 20:22:40
  • 翔仔 回复 随缘清风 #2
    同学好,如果写回了主内存,那么主内存肯定就变成了10
    回复 有任何疑惑可以回复我~ 2021-07-25 23:39:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信