Как правильно использовать ключевое слово volatile в Java?
Скажем, у меня есть две темы и объект. Один поток назначает объект:
public void assign(MyObject o) {
myObject = o;
}
Другой поток использует объект:
public void use() {
myObject.use();
}
Должна ли переменная myObject быть объявлена как volatile? Я пытаюсь понять, когда использовать энергозависимые, а когда нет, и это меня озадачивает. Возможно ли, что второй поток хранит ссылку на старый объект в своей локальной кэш-памяти? Если нет, то почему?
Большое спасибо.