一:有以下四种情况
线程一和线程二重合的情况:
0+1+-2=-1
线程一和线程二部分重合的情况:
0+1+1-2=0
线程一和线程二无重合的情况:
0 +1+-2+1+-2=-2
假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果可能是(-1,0,-2)
boolean isOdd = false;
for(int i=1;i<=2;++i)
{
if(i%2==1)isOdd = true;
else isOdd = false;
a+=i*(isOdd?1:-1);
}
网友评论