Java “是什么意思?”;“快速通道”;无竞争同步?
从的“性能和可扩展性”一章: 同步机制针对无竞争的情况进行了优化 案例(volatile总是无争议的),在本文中 “快速路径”无争用同步范围的性能成本 大多数系统的时钟周期为20到250个Java “是什么意思?”;“快速通道”;无竞争同步?,java,concurrency,synchronization,volatile,Java,Concurrency,Synchronization,Volatile,从的“性能和可扩展性”一章: 同步机制针对无竞争的情况进行了优化 案例(volatile总是无争议的),在本文中 “快速路径”无争用同步范围的性能成本 大多数系统的时钟周期为20到250个 作者在这里所说的快速路径无争用同步是什么意思?我不熟悉这本书的主题,但一般来说,“快速路径”是一个特定的可能控制流分支,它比其他分支效率更高,因此更受欢迎,但不能处理复杂的情况 我假设这本书讨论的是Java的synchronizedblock/qualifier。在这种情况下,快速路径很可能是很容易检测到没有
作者在这里所说的快速路径无争用同步是什么意思?我不熟悉这本书的主题,但一般来说,“快速路径”是一个特定的可能控制流分支,它比其他分支效率更高,因此更受欢迎,但不能处理复杂的情况
我假设这本书讨论的是Java的
synchronized
block/qualifier。在这种情况下,快速路径很可能是很容易检测到没有其他线程访问相同数据的路径。那么,这本书所说的是,synchronized
的实现已经过优化,以便在只有一个线程实际使用对象的情况下具有最佳性能,与使用多个线程的情况相反,同步实际上必须在多个线程之间进行调解。获取同步锁的第一步是单个易失性写入(监视器所有者字段)。如果锁是无争用的,那么这就是将要发生的一切
如果锁有争议,则会有各种上下文切换和其他机制来增加时钟周期。这里有两个不同的概念
热点VM,慢速路径代码是由C++实现产生的二进制代码,其中快速路径代码是JIT编译器生成的代码。 一般来说,快速路径代码要优化得多。全面理解JIT编译器
无争用和争用同步 Java的同步构造()具有所有权的概念。当一个线程试图锁定(获得所有权)监视器时,它可以被锁定(由另一个线程拥有)或解锁 无争用同步发生在两种不同的场景中:作者所说的快速路径无争用同步是指在最便宜的场景(无争用同步)中最快的字节码转换(快速路径)。您进行过谷歌搜索吗。我遇到了这样的问题:我不明白这是如何回答什么是
快速路径的问题的?如果这里有隐含的东西,你能把它显化吗?快速路径是读写单个字段。慢路径是挂起线程并保存线程上下文。