首先要说一下JVM内存空间分为五部分,分别是:方法区、堆、Java虚拟机栈、本地方法栈、程序计数器 方法区主要用来存放类信息、类的静态变量、常量、运行时常量池等,方法区的大小是可以动态扩展的, 堆主要存放的是数组、类的实例对象、字符串常量池等。 Java虚拟机栈是描述JAVA方法运行过程的内存模型, ...
分类:
其他好文 时间:
2020-03-07 12:58:31
阅读次数:
60
线程池: 线程池的好处:线程使应用能更加充分利用CPU、内存、网络、IO等系统资源。线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等线程私有的内存空间。 在线程销毁时需要回收这些系统资源。因此频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程风险。另外,在服务器负载过大的时候,如何让新的线程 ...
分类:
编程语言 时间:
2020-03-05 22:14:22
阅读次数:
85
JVM的内存区域是怎么划分的?JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢?首先是程序计数器(ProgramCounterRegister),在JVM规范中,每个线程都有自己的程序计数器。这是一块比较小的内存空间,存储当前线程正在执行的Jav
分类:
其他好文 时间:
2020-03-04 00:24:06
阅读次数:
63
1 定义 进程:进程是程序处理机上的一次执行过程, 它是一个动态的概念,它是系统进行资源分配和调度的一个独立单位。 线程:进程的一个实体,是CPU运行调度的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈), ...
分类:
编程语言 时间:
2020-03-03 10:31:30
阅读次数:
104
程序计数器(私有) 程序计数器:"是一个非常小的内存空间,用来保证程序依次执行",它可以看作是当前线程所执行的字节码的行号指示器 由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在切出后切回的时候需要一个标识。 栈 (私有) "基本类型、运算、方法服务、指向堆内存的指 ...
分类:
编程语言 时间:
2020-02-25 00:11:09
阅读次数:
92
上下文首先,需要讲清楚什么是上下文。 每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,这就涉及到 CPU 寄存器 和 程序计数器(PC): CPU 寄存器是 CPU 内置的容量小、但速度极快的内存;程序计数器会存储 CPU 正在执行的指令位置,或者即将执行的指令位置。这两个是 C ...
分类:
其他好文 时间:
2020-02-24 00:32:27
阅读次数:
52
https://juejin.im/post/5a15be736fb9a044fc4464d6 jvm jvm把内存分为 1.方法区(Method Area) 2.堆区(Heap) 3.虚拟机栈(VM Stack) 4.本地方法栈(Native Method Stack) 5.程序计数器(Progr ...
分类:
其他好文 时间:
2020-02-23 09:15:59
阅读次数:
51
RDB和AOF持久化 ?RDB持久化 RDB是什么? 原理是redis会单独创建(fork) 一个与当前进程一模一 样的子进程来进行持久化,这个子进程的所有数据(变量。环境变量,程序程序计数器等)都和原进程一模一 样,会先将数据写入到一个临时文件中,待持久化结束了,再用这个临时文件替换上次持久化好的 ...
分类:
数据库 时间:
2020-02-22 20:10:56
阅读次数:
81
1. volatile的作用 保证共享变量对于多线程之间的可见性 防止指令重排序 2. 计算机的组成 程序启动后,会加载到内存中 内存中会有多条指令,由pc程序计数器来记录指令地址 指令执行,内存中的数据放入寄存器,ALU运算单元计算,计算完成后返回到寄存器,然后写入到内存 3. 线程可见性 可见性 ...
分类:
其他好文 时间:
2020-02-22 14:20:23
阅读次数:
72
一 jvm 1.线程 2.jvm内存区域 a) 程序计数器 -私有区 b) 虚拟机栈 -私有区 c) 本地方法取 --私有区 d) 堆-线程共享-运行时数据区 e) 方法区-永久代 线程共享 3.jvm运行时内存 a) 新生代:Eden区/ServisionFrom/ServisionTo/ Min ...
分类:
编程语言 时间:
2020-02-21 14:56:54
阅读次数:
92