运行时数据区
当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们的运行时数据区。
比如大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区
。而厨师可以类比于执行引擎
,将通过准备的东西制作成精美的菜品。运行时数据区即加载到物理内存的东西。
JVM线程
线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行
在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射
当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建。Java线程执行终止后,本地线程也会回收
操作系统负责将线程安排调度到任何一个可用的CPU上。一旦本地线程初始化成功,它就会调用Java线程中的run( )方法
如果一个线程抛异常,并且该线程是进程中最后一个守护线程,那么进程将停止