3.2 锁消除
2020-04-13 本文已影响0人
lsh的学习笔记
锁消除是指虚拟机即时编译器
在运行时,对一些代码上要求同步,但是被检测到不可能存在共享数据竞争的锁进行消除。
锁消除的主要判定依据来源于逃逸分析
的数据支持,如果判断在一段代码中,堆上的所有数据都不会逃逸
出去从而被其他线程访问到,那就可以把它们当做栈上数据
对待,认为它们是线程私有的,同步加锁自然就无须进行。
有许多同步措施并不是程序员自己加入的,同步的代码在Java程序中的普遍程度也许超过了大部分读者的想象。