Java并发-常见基础 线程与进程与协程进程是程序的一次执行过程,是系统资源分配的基本单位。进程间基本上是独立的。 线程是更小的运行单位。线程是调度执行的基本单位。线程间极有可能相互影响。 多个线程可以共享同一块内存空间与系统资源(堆,方法区(元空间)),也有自己独立的程序计数器与虚拟机栈,本地方法栈。 线程的切换负担要小很多。也被称为轻量级的进程。 程序计数器:为了线程切换后可以恢复到正确的执行位置。虚拟机栈:方法调用 2021-07-30 Java并发 #basic
Java虚拟机-垃圾回收器 概述评估 GC 的性能指标吞吐量:运行用户代码的时间占总运行时间的比例(总运行时间 = 程序的运行时间 + 内存回收的时间)垃圾收集开销:吞吐量的补数,垃圾收集所用时间与总运行时间的比例。暂停时间:执行垃圾收集时,程序的工作线程被暂停的时间。收集频率:相对于应用程序的执行,收集操作发生的频率。内存占用:Java 堆区所占的内存大小。快速:一个对象从诞生到被回收所经历的时间。 吞吐量、暂停 2021-07-30 JVM #实现
Java虚拟机-垃圾回收算法 概念垃圾?Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C++语言没有垃圾收集技术,需要程序员手动的收集。 什么是垃圾? 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。 System.gc() 的理解在 2021-07-30 JVM #算法
Java虚拟机-虚拟机栈,堆,方法区 PC 寄存器(程序计数器)它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。 在 JVM 规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的 Java 方法的 JVM 指令地址;或者,如果是在执行 native 方法,则是未指定值(undefne 2021-07-30 JVM #宏观
Java虚拟机-类加载子系统 初始化顺序?(非静态:默认初始化-显示初始化-代码块初始化-无参构造初始化 or 有参构造初始化) (静态:默认-显示-静态代码块-非静态代码块-无参构造初始化 or 有参构造初始化) A 类引用了 B,C,C 引用 B,程序入口 A,类加载顺序?BCA,先加载父类。 怎样将两个全路径相同的类加载到内存?类相同还需类加载器相同,自定义类加载器即可 类加载过程加载通过一个类的全限定名获取定义此类的二 2021-07-30 JVM #概念
Java虚拟机-内存结构 jvm 内存分配-Xms 初始堆大小 物理内存的 1/64(<1GB) -Xmx 最大堆大小 物理内存的 1/4(<1GB) -Xmn 年轻代大小 整个堆的 3/8 (eden+ 2 survivor space) -Xss 每个线程的堆栈大小 JDK5.0 以后每个线程堆栈大小为**1M,**以前每个线程堆栈大小为 256K一般小的 2021-07-30 JVM #结构
操作系统-fork [TOC] 简单概念介绍逻辑地址CPU 所生成的地址。CPU 产生的逻辑地址被分为 :p (页号) 它包含每个页在物理内存中的基址,用来作为页表的索引;d (页偏移),同基址相结合,用来确定送入内存设备的物理内存地址。 物理地址内存单元所看到的地址。用户程序看不见真正的物理地址。用户只生成逻辑地址,且认为进程的地址空间为 0 到 max。物理地址范围从 R+0 到 R+max,R 为基地址,地址映 2021-07-30 操作系统 #概念
操作系统-线程与进程 [TOC] 进程与线程进程更好的描述和控制程序的并发执行。PCB 进程控制块-进程存在的唯一标志。程序的一次执行过程。拥有资源的基本单位。状态:运行,就绪,阻塞,创建,结束 线程一个基本的 CPU 执行单元。是系统独立调度派的基本单位。一个进程中可以有多个线程。线程切换只需要保存设置程序计数器,虚拟机栈少量内容,开销小。轻量级进程。 进程调度 ⼀旦操作系统把进程切换到运⾏状态,也就意味着该进程占⽤ 2021-07-30 操作系统 #概念
操作系统-内存管理 [TOC] 分段管理 进程的地址空间:按照程序自身的逻辑关系划分(代码段,数据段……)为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从 0 开始编址。内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。 由于是按逻辑功能模块划分,用户编程更方便,程序可读性更高。 逻辑地址:段号:段内地址 段表:段号=段基地址=段长。 2021-07-30 操作系统 #内存管理