线程池 线程池 Executor 接口: 声明了 execute(Runnable runnable)方法,执行任务代码 ExecutorService 接口: 继承 Executor 接口,声明方法:submit、invokeAl...
并发处理
并发处理 多线程特性 原子性 一个或多个操作要么全部执行并且执行过程中不会被任何因素打断,要么就不执行。 可见性 当多个线程同时访问一个变量时,一个线程修改了这个变量,其他线程能够立即看见修改的值。单线程不存在可见性问题。...
线程间通讯
线程间通讯 线程通信 线程间通信常用方式 休眠唤醒 object 的 wait,notify,notifyAll Condition 的 await,signal,signalAll CountDownLatch:用于某个线程...
Java虚拟机栈栈帧
Java虚拟机栈栈帧 java虚拟机以方法作为最基本的执行单位。“栈帧”是用于支持虚拟机进行方法调用和方法执行背后的数据结构。栈帧存储了方法的局部变量表,操作数栈,动态链接和方法返回地址等信息。 栈帧的概念结构 局部变量表 局部...
垃圾回收和内存分配
垃圾回收和内存分配 垃圾回收 垃圾判别算法 引用计数法 一个对象A,只要有任何一个对象引用了A ,则A 的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A 的引用计数器的值为0,即表示对象A不可能再被使用,可进行回收。 ...
虚拟机运行时数据区域
虚拟机运行时数据区域 运行时数据区域 程序计数器 通过改变这个计数器 的值来选取下一条需要执行的字节码指令 java 虚拟机的多线程是通过线程轮流切换、分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器...
JVM
JVM GC评估标准 吞吐量 CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间)。 吞吐量就是比如:虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟...
虚拟机中的对象
虚拟机中的对象 虚拟机类加载机制 类的生命周期 加载,验证,准备,初始化_和_卸载_这五个顺序是可以确定的,类型的加载过成必须按照这种顺序按部就班的开始, 而_解析_阶段可以在初始化阶段后再开始。(并非完成一步后再进行其他部分,...
Volatile
Volatile Volatile的可见性和指令重排是如何实现的.内存模型的相关概念 内存模型 计算机在执行程序过程中,每条指令都是在CPU中执行的,而在执行过程中,程序的临时数据是放在主内存上的,此时就存在一个问题,CPU执行速度很...
JavaWeb
JavaWeb