1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运 行时常量池)、直接内存。 程序计数器 程序计数器(Program Counter Register) ...
分类:
编程语言 时间:
2020-01-05 22:37:11
阅读次数:
95
4.1 线程 每个线程是cpu使用的一个基本单元,它包括线程ID、程序计数器、寄存器组和堆栈。它与同一进程的其他线程共享代码段、数据段和其他操作系统资源。 多线程编程的优点:响应性、资源共享、经济、可伸缩性。 4.2 多核编程 对于单核系统,并发仅意味着线程随着时间交替执行,因为处理核只能同一时间执 ...
分类:
编程语言 时间:
2020-01-05 00:43:31
阅读次数:
118
进程是现代分时操作系统的工作单元。 进程是资源分配的基本单位。 线程是程序执行的最小单位。 3.1 进程概念 3.1.1 进程 进程是执行的程序,这是一种非正式的说法。进程不只是程序代码(也称文本段),进程还包括数据(程序计数器的值和处理器寄存器的内容等)、进程堆栈(包括临时数据,如函数参数、返回地 ...
分类:
系统相关 时间:
2020-01-05 00:07:47
阅读次数:
95
一,硬件系统 1.主存: 是什么:临时存储设备 实质上:由一组DRAM(动态随机存取存储器)构成 逻辑上:线性字节数组,每个字节都有唯一的索引地址 放什么:放程序和程序运行时所需的data(指令) 2.处理器(CPU) 功能:解释执行放在主存里的指令构成: PC:程序计数器。任何时间都指向主存中某条 ...
分类:
其他好文 时间:
2020-01-01 17:06:40
阅读次数:
78
JVM内存结构 Java内存模型是指Java虚拟机的内存模型,我们来看下Java内存模型的图片: VM内存模型主要分为三块:Java 堆内存(Heap)、方法区(Non-Heap)、JMV栈(JVM Stack)、本地方法栈(Native Method Stacks)、程序计数器(Program C ...
分类:
其他好文 时间:
2019-12-31 23:34:36
阅读次数:
102
一、Java内存区域 从《深入理解Java虚拟机》一书中知道 1. 程序计数器 当前线程的行号指示器,JVM多线程的方式,导致了线程在被挂起到重新获取执行权时,需要知道上次挂起的地方在哪。在JVM中, 通过程序计数器来记录字节码的执行位置。程序计数器具有隔离性,为线程私有。此区域不会发生OOM。 2 ...
分类:
其他好文 时间:
2019-12-31 12:28:46
阅读次数:
68
垃圾收集的位置 JVM把内存区域分为多个子区。在这些子区中,程序计数器,虚拟机栈和本地方法栈生命周期与线程绑定,程序计数器始终指向当前执行的字节码位置,或为空,虚拟机栈和本地方法栈则随着方法的执行和结束执行如栈和出栈操作,每一个栈帧的内存大小在类结构确定下来时就为已知的,因此在这些子区中的内存分配和 ...
分类:
其他好文 时间:
2019-12-29 15:01:20
阅读次数:
61
内存管理 内存分配和内存释放 内存分配由程序完成,内存释放由GC完成 运行时数据区域 (1)程序计数器(program counter register) 一块较小的内存空间 当前线程所执行的字节码的行号指示器,字节码解释器在工作的时候就是通过改变程序计数器的值来选取下一跳要执行的指令 多线程环境下 ...
分类:
其他好文 时间:
2019-12-27 13:09:40
阅读次数:
94
java虚拟机中的程序计数器区、虚拟机栈区、本地方法栈区3个区域是随着线程的创建而创建,随着线程的结束而结束时,内存自然得到回收,所以这三个区域不需要过多考虑内存的回收问题。 java虚拟机中的方法区和虚拟机堆区2个区是所有线程共享的区域,不同的接口或类需要的内存不同,且方法区和堆区往往是在程序运行 ...
分类:
编程语言 时间:
2019-12-26 19:30:21
阅读次数:
72
JVM部分数据整理 一、运行时数据区域 Java内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【Java堆、方法区】、直接内存(不受JVM GC管理) 1、线程私有部分 1.1、程序计数器 程序计数器(Program Counter Register)一块较小的内存空 ...
分类:
其他好文 时间:
2019-12-21 22:46:38
阅读次数:
81