Как правильно использовать ключевое слово volatile в Java?

Скажем, у меня есть две темы и объект. Один поток назначает объект:

public void assign(MyObject o) {
    myObject = o;
}

Другой поток использует объект:

public void use() {
    myObject.use();
}

Должна ли переменная myObject быть объявлена ​​как volatile? Я пытаюсь понять, когда использовать энергозависимые, а когда нет, и это меня озадачивает. Возможно ли, что второй поток хранит ссылку на старый объект в своей локальной кэш-памяти? Если нет, то почему?

Большое спасибо.

Ответы на вопрос(6)

Ваш ответ на вопрос