如果我们有两个核心在同一个缓存块中读取和写入不同的内存位置,则两个核心都被迫一次又一次地重新加载该缓存块,尽管这在逻辑上是不必要的。这就是我们所说的虚假分享。
但是,如果内核从不从该缓存块中读取,而只是写入呢?想象一下,两个内核只是在同一个缓存块中设置了一些位,但它们不必从该块中读取,因为它们设置的位信息仅在程序的后期阶段需要。
只有当内核在同一个块上读取和写入时才会发生错误共享,还是如果两者都只写入它也会发生?
如果我们有两个核心在同一个缓存块中读取和写入不同的内存位置,则两个核心都被迫一次又一次地重新加载该缓存块,尽管这在逻辑上是不必要的。这就是我们所说的虚假分享。
但是,如果内核从不从该缓存块中读取,而只是写入呢?想象一下,两个内核只是在同一个缓存块中设置了一些位,但它们不必从该块中读取,因为它们设置的位信息仅在程序的后期阶段需要。
只有当内核在同一个块上读取和写入时才会发生错误共享,还是如果两者都只写入它也会发生?