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