如果我有一个对象图,并且每个对象threads
可以buckets
同时进入每个对象,则导致像
syncrhonized(values.get(ObjectToLock)){
int sum = 0;
for(int i = 0; i< new Random().nextInt(1000)+2; i++)
sum+=i;
return sum;
}
更新
syncrhonized(values.get(ObjectToLock)){
int sum = 0;
for(int i = 0; i< new Random().nextInt(1000)+2; i++)
sum+=i;
for(int i = 0; i < 10; i++)
for( int j = 0; j < 10 ; j++)
System.out.println(*);
return sum;
}
在这段代码中,每个线程之间是否会相互干扰,从而导致sum
扭曲?
不,sum
是局部变量。每个线程都有自己的副本。
在synchronized
块外声明它并不会减少它的局部变量,只会使它的作用域更大。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句