从同步块返回同步值

石油公司

如果我有一个对象图,并且每个对象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扭曲?

Sotirios Delimanolis

不,sum是局部变量。每个线程都有自己的副本。

synchronized外声明它并不会减少它的局部变量,只会使它的作用域更大。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章