我有一段简单的代码,我想让它多线程友好。
for(x=0;x<xLen;x++)
{
for(y=0;y<yLen;y++)
{
index = x*y+z;
a[index] = a[index-1] + a[index+1] +a[index-lenX] + a[index+lenX];
}
}
通常我会按线程数划分xLen,并在自己的线程中运行每个部分。 但是在这种情况下将其划分会导致麻烦,并且在某些地方结果基于错误的数据(例如,index-1保存已经由邻居更新的值)。
以前有人有过这种问题吗? 对于这种方程,有没有任何已知的方法?