Возможно, это очень глупый вопрос. Просто хотел подтвердить свое понимание.Необходимость синхронизации в геттерах и сеттерах
class Test
{
private volatile String id;
public void setID(String id)
{
this.id = id;
}
public String getID()
{
return id;
}
}
Допустим, что к объекту вышеуказанного класса можно получить доступ по нескольким потокам. Мое понимание заключается в том, что в случае простых getter и seters, как описано выше (простую инициализацию), мне не нужно синхронизировать эти методы, правильно?
Я думаю, что volatile необходим, поскольку в противном случае значение id может устаревать иначе в разных потоках.
Итак, может ли кто-нибудь увидеть какую-либо проблему, если у нас нет таких методов, как синхронизировано?
Может быть, этот вопрос поможет вам: http://stackoverflow.com/questions/15828067/java-synchronized-keyword-needed-on-primitive-getter-setter-method – pad
Нет, вы должны синхронизировать его в вашем методе также –
для этого требуется синхронизация для ключевого слова volatile, без него, если POJO не является одиночным или разделяется через все потоки, ему не потребуется синхронизация. – RamonBoza