Могу ли я также требуется volatile для переменных ссылочных типов?

Мы часто используем volatile , чтобы гарантировать, что переменная условия может быть видна каждому потоку.

Я вижу, что поля volatile все примитивны наберите в коде.

Имеется ли эта проблема в поле объекта ? Например:

class a {

   public String str;

   public List list;

}

Если есть потоки, которые будут обращаться к str и list, должен ли я добавить 'volatile'?

Думаю, каждый доступ к Object будет осуществляться непосредственно из Heap ], а объект не будет кэшироваться как примитивный тип.

Верно?

24
задан Paŭlo Ebermann 16 August 2011 в 18:42
поделиться