这个问题,实质上是相匹配于事实上CPU和内存的关系模型。尤其是多核心的CPU和内存的关联。
较先,CPU是没法立即对内存中的数据开展估算的,CPU的估算是如此的:
CPU把内存中的数据载入到寄存器中;对寄存器中的数据开展测算;把测算后的数据写返回内存中;并且,在CPU和内存正中间也有几层快速的缓存文件。
因此,JVM在制定的情况下,实际上也是对较底层的CPU和内存的关联开展了一个抽象性。那麼,这种定义便是相匹配于具体中的人物角色的:
主内存:便是相匹配于电脑的内存;
工作中内存:相匹配于CPU中的寄存器和缓存文件这些,而因为有多核的存有,这一工作中内存也会出现好几个存有。这一定义和线程私有化的内存或是不一样的,线程私有化的内存,实际上是栈内存。
牵涉到主存和工作中内存的问题,大多数是和多线程在好几个具体的CPU核心中运作的情景时中探讨的。
因为有工作中内存的存有,并且可能是遍布在不一样的CPU核心中,因此便会有数据的“由此可见行问题”:
由此可见性的问题,实质上便是当有多CPU核心中的好几个线程,与此同时在对一个主内存中的分享数据开展改动的情况下,在其中一个核心改动以后,别的的核心必须了解的自变量被改动了,便于把自己核心中的缓存文件给无效了,随后去主存中再次载入。以上,期待有一定的协助。
深圳市福田区诚芯源电子商行专注于回收海力士内存,回收海力士芯片,回收海力士字库等