如果我有以下2个for循环将在不同的线程上运行:
for (int ii = 1; ii < times.Length; ii+=2)
{
if (times[ii] - times[ii - 1] > maxGap)
return false;
}
for (int ii = 2; ii < times.Length; ii += 2)
{
if (times[ii] - times[ii - 1] > maxGap)
return false;
}
两个线程都试图从times
数组中的项目读取的情况可能会发生这种情况,例如两个线程都可以尝试同时读取times[1]
。
鉴于这两个线程只会从这些数组读取,这是一个问题,例如它是否会导致我的代码崩溃或任何其他意外的负面后果?
答案 0 :(得分:5)
如果仅执行读取操作,则不会出现问题。 一起读写操作可能会导致问题。