JVM线程与进程补充

72 阅读1分钟

%- 一个虚拟机对应一个进程:Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机的启动而创建,随着虚拟机的退出而销毁【进程生命周期=虚拟机生命周期】

  • 另一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程的开始和结束而创建和销毁
  • 每个JVM只有一个Runtime实例,即为运行时环境 = 运行时数据区

1.png

灰色的为单独线程私有的,红色的为多个线程共享的,即:

  • 每个线程:独立,包括程序计数器、栈、本地栈
  • 线程间共享:堆、堆外内存(永久代或元空间、代码缓存)
  • 95%的垃圾回收在堆区,5%的垃圾回收在方法区

1.png

1.png