问题描述
- JMM:线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接在主内存中读写;
- 这是否意味着所有变量都在主内存中有一份,在各个工作内存中又有一份,变量真实所占用空间只有一半
我期待的结果是什么?
- 得到给java程序分配8G,是否只能使用大概4G,因为工作内存中有拷贝,如果不是,真实情况是怎么样的
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我理解应该是动态分配的,也就是只有需要在多线程环境下使用的变量才有一份拷贝。所以会有冗余,但不是只能使用一半这么夸张。