运行时数据区概述及线程
一、运行时数据区概述
内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。
HotSpot的运行时数据区
上图中红色的方法区和红色的堆与JVM共存亡,也就是与进程共存亡,由进制的所有线程共享。
灰色的程序计数器、本地方法栈、虚拟机栈与线程共存亡,也就是说每个线程有独立的程序计数器、本地方法栈、虚拟机栈。
每个JVM只有一个Runtime实例。即为运行时环境,相当于内存结构的中间的那个框框。
二、线程
线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行。
在HotSpot JVM里,每个线程都与操作系统的本地线程直接映射。
当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建。Java线程执行终止之后,本地线程也会回收。