乐趣区

关于多线程:JVM与计算机之间的关系

计算机内存硬件架构

CPU,一台古代计算机领有两个或多个 CPU,其中一些 CPU 还有多核,从这一点能够看出,在一个有两个或多个 CPU 的古代计算机上,同时运行多个线程是十分有可能的,而且每个 CPU 在某一个时刻,运行一个线程是必定没有问题的,这意味着,如果 Java 程序是多线程的,在 Java 程序中,每个 CPU 上一个线程是可能同时并发执行的。

CPU Refisters(寄存器),每个 CPU 都蕴含一系列的寄存器,它们是 CPU 内存的根底,CPU 在寄存器中执行操作的速度远大于在主存上执行的速度,这是因为 CPU 拜访寄存器的速度远大于主存。

Cache(高速缓存),因为计算机的存储设备与处理器运算速度之间有着几个数量级的差距,所以古代计算机系统都不得不退出一层读写速度尽可能靠近处理器运算速度的高级缓存来作为内存与处理器之间的缓冲,将运算须要应用到的数据复制到缓存中,让运算能疾速的进行,当运算完结后,在从缓存同步到内存中。这样处理器就无需期待迟缓的内存读写,CPU 拜访缓存层的速度快于拜访主存的速度,但通常比拜访外部寄存器的速度要慢。

 Main Memory(主存),随机存取存储器(random access memory,RAM)又称作“随机存储器 ”,一个计算机蕴含一个主存,所有的 CPU 都能够拜访主存,主存通常比 CPU 中的缓存大得多。

JVM 和计算机之间的关系

JVM 与 Computer 内存架构存在差别,硬件内存并无辨别栈与堆,对于硬件而言,所有的栈和堆都散布在主内存中,可能会呈现在高速缓存、寄存器中。

内存模型形象构造

退出移动版