我有以下面试问题:
class someClass
{
int sum=0;
public void foo()
{
for(int i=0; i<100; i++)
{
sum++
}
}
}
有两个并行线程通过 foo 方法运行。最后 sum 的值会在 100 到 200 之间变化。问题是为什么。据我了解,只有一个线程获得 cpu,并且线程在运行时被抢占。在什么情况下,干扰会导致总和未达到 200?