Мы часто используем volatile, чтобы гарантировать, что переменная условия может быть видимой для каждого потока.
Я вижу, что поля volatile все primitive type в коде до сих пор.
В этой области есть поле object? Например:
class a {
public String str;
public List list;
}
Если есть некоторые потоки, которые будут обращаться к str и списку, я должен добавить "volatile"?
Я предполагаю, что каждый доступ к object будет получать непосредственно из Heap, а object не будет кэшироваться как примитивный тип.
Правильно ли это?