У меня есть сомнения по поводу механизма синхронизации Java.Давайте возьмем следующий фрагмент кода:
class A {
int instance=0;
synchronized void met1() {
instance=instance +1;
....
instance = instance+2*3;
}
В приведенном выше методе met1 нам нужно синхронизировать его в многопоточной среде, поскольку он модифицирует переменную экземпляра объекта.Однако в этом фрагменте кода -
class A {
synchronized void met1() {
local=local +1;
....
local = local+2*3;
}
Метод met1 модифицирует локальную переменную, которая, я думаю, будет уникальной для каждого потока, выполняющего этот метод.Таким образом, в этом случае, когда поток изменяет только локальную переменную, необходимо ли синхронизировать метод?