首页 > 解决方案 > 在这种只读多线程情况下是否会发生错误共享?

问题描述

Matrix4X4* EightMatrix;

void Calculate(const Matrix4X4* eightMatirx)
{
    //eightMatirx is only read for calculating something   
}

Calculate函数在多个线程上同时执行。我知道当多个处理器访问同一缓存行上的数据时会发生错误共享。在我的情况下,所有线程都访问相同的内存位置(eightMatrix)。但eightMatrix不是由线程写入,仅读取,因此不需要缓存一致性。但我担心虚假分享。在这种情况下会发生吗?

标签: c++caching

解决方案


推荐阅读