3.1可见性 为了确保多个线程之间对内存写入的可见性,就必须使用同步机制 在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到调整。在缺乏足够...

3.1可见性 为了确保多个线程之间对内存写入的可见性,就必须使用同步机制 在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到调整。在缺乏足够...
要编写线程安全的代码,核心在于对状态访问操作进行管理,特别是共享的(Shared)和可变的(Mutable)访问 对象的状态指存储在状态变量(实例变量、静态域)中的数据,对象...
1.1并发简史 操作系统多进程出现的原因 资源利用率:一个程序等待某个外部操作的时候运行另一个程序 公平性:粗粒度的时间分片共享计算机资源 便利性:多个程序执行多个任务 促使...
13.1概述 13.2线程安全 当多个线程访问一个对象的时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,...
12.1概述 衡量一个服务端的好坏,每秒事物处理数(Transactions Per second,TPS)是最重要的指标之一 12.2硬件的效率与一致性 基于高速缓存的存储...
11.1概述 为了提高热点代码的运行效率,在运行时,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In ...
10.1概述 Java语言的“编译期”其实是个“不确定”的过程: 前端编译器:把Java文件编译成class文件,例如Sun的javac、Eclipse JDT中的增量编译器...
9.1概述 在class文件格式和执行引擎这部分内容中,用户程序能直接影响的并不多,Class文件以何种形式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令都由虚拟...
8.1概述 执行引擎:输入字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果 8.2运行时栈帧结构 栈帧是虚拟机用于方法调用和方法执行的数据结构,是虚拟机运行时数据...
7.1概述 虚拟机把描述类的数据从class文件加载到内存,经过校验、转换解析、初始化,最形成能够被虚拟机直接使用的java类型,这就是虚拟机的加载过程 类的加载、连接、初始...
6.1概述 计算机只能识别0和1 虚拟机以及建立在虚拟机上语言的出现,使编写的程序编译成二进制本地机码(native code)非唯一选择,越来越多编程语言选择了与操作系统和...
3.1概述 3.2对象已死吗 3.2.1引用计数法 实现简单、判定效率高 无法解决循环引用的问题 主流虚拟机没有采用 3.2.2可达性分析算法 通过一系列称作“GC Root...
5.1概述 5.2案例分析 5.2.1高性能硬件上的程序部署 两种方式 通过64位JDK使用大内存 内存回收导致长时间停顿 现阶段,64位JDK的性能结果普遍低于32位JDK...
4.1概述 定位问题,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段 数据包含:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore...
2.1概述 讲解内存各个区域的作用、服务对象以及其中可能产生的问题 2.2运行时数据区 2.2.1程序计数器 当前线程所执行的字节码的行号显示器 每个线程都有独立的程序计数器...
介绍java技术体系的过去、现在、和未来的发展趋势;如何独立的编译一个OpenJDK7 1.1概述 java不仅仅是一种编程语言,还是一个由一系列计算机软件和规范形成的技术体...