伪共享
在理解伪共享之前我们需要先了解 Cache行,如下图所示,在 CPU 需要访问某个变量时会先去 CPU Cache 中查找是否存在该变量,如果存在则直接从中获取,如果不存在则会去主内存中获取这个变量,然后将该变量所在的内存区域中一个 Cache行 大小的内存复制到 Cache 中。因为存放在同一个 Cache行 中的是一个内存块而不是单个变量,所以在一个 Cache行 会出现存在多个变量的情况。
Note
在理解伪共享之前我们需要先了解 Cache行,如下图所示,在 CPU 需要访问某个变量时会先去 CPU Cache 中查找是否存在该变量,如果存在则直接从中获取,如果不存在则会去主内存中获取这个变量,然后将该变量所在的内存区域中一个 Cache行 大小的内存复制到 Cache 中。因为存放在同一个 Cache行 中的是一个内存块而不是单个变量,所以在一个 Cache行 会出现存在多个变量的情况。