Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。
灰色的为单独线程私有的,红色的为多个线程共享的。即:
-
每个线程:独立包括程序计数器、栈、本地栈。
-
线程间共享:堆、堆外内存(永久代或元空间(方法区)、JIT编译产物的代码缓存)
每个JVM只有一个Runtime实例。即为运行时环境,相当于上图中的那个框框(运行时环境)。
Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。
灰色的为单独线程私有的,红色的为多个线程共享的。即:
每个线程:独立包括程序计数器、栈、本地栈。
线程间共享:堆、堆外内存(永久代或元空间(方法区)、JIT编译产物的代码缓存)
每个JVM只有一个Runtime实例。即为运行时环境,相当于上图中的那个框框(运行时环境)。