名词解释

来源:互联网 发布:笔迹分析知乎 编辑:程序博客网 时间:2024/04/29 14:11

逃逸分析

逃逸分析Java 提供了语言级的并发程序设计手段,例如同步的方法和程序块(synchronized method and block),编程者可以方便地使用这些手段对线程和共享数据进行有效控制.在现代多处理器系统中,如对称多处理器 SMP 架构上,此类同步运算的最终实现通常依靠上锁和解锁指令集来完成.以 X86 Xeon 体系结构为例,对某一内存区域的上锁操作即便不会造成多个线程对同一信号量的争夺,也会导致相关的缓存区域被刷新;两者都会造成程序运行时较大的开销是针对这一问题而提出的一种跨函数(inter-procedure)全局数据流分析算法.它通过分析每个对象及其域可能被访问的范围,判断出:
1) 一个对象是否仅被创建它的线程访问,从而可以合法地忽略作用在这个对象之上的同步操作;
2) 一个对象是否仅被创建它的方法以及被该方法调用的子方法访问,从而可以合法地将此对象分配在程序运行栈,而不是内存堆上.这样可以有效地减少内存收集模块(garbage collector)的负载,提高程序的运行效率.

Remenbered Sets,Card Tables

主要作用:减少扫描时间。记录各个分区(或是分代)间的相互引用关系,使得在回收某一部分时,不需要扫描其他部分(可能有其他部分引用了要回收的区域)
区别:Remembered sets and dirty bits have been proposed as alternative implementations of the write barrier for garbage collection. There are advantages to both approaches. Dirty
bits can be efficiently maintained with minimal, bounded overhead per store operation, while remembered sets concisely, and accurately record the necessary information.

CAS

CAS:Compare and Swap, 翻译成比较并交换。
java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。
java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。
CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。
这里写图片描述

内存屏障

这里写图片描述

Volatile

这里写图片描述

0 0