Кэш третьего уровная и volatile

174
14 апреля 2018, 21:46

Как я знал что volatile это обеспечение синхронизации переменной между кэшами процессорами, уведомляя каждое ядро перед началом изменения и после окончания изменения, какую роль здесь играет кэш третьего уровная, как я читал что он может использоваться как буфер для синхронизации данных, значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?

Answer 1

значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?

Нет. Прямой зависимости между volatile переменной и кешем третьего уровня - нет.

Как уже заметили выше, ключевое слово volatile гарантирует, что изменения переменной в одном потоке будут видны остальным потокам из-за правил happens before. Подробнее тут

С кешами L1, L2, L3 работает только сам процессор. Он сам решает какие данные подгружать. У нас нет доступа к кешу процессора ни через С ни через ассемблер (поправьте меня в комментариях, если я не прав) Подробнее на вики.

Теоретически при частом обращении к одной и тоже переменной процессор может положить ее в кеш, но мы не можем гарантировать это на 100%

P.S:

  • про низкоуровневую работу volatile Habr
  • про синхронизацию кешей процессора Habr
READ ALSO
Наследование по ArrayList

Наследование по ArrayList

Хочу создать класс, наследуемый по классу ArrayList и переопределить его методы ( допустим добавить в методadd() счётчик, который будет подсчитывать...

143
Как загрузить файл в SoundPool по URI?

Как загрузить файл в SoundPool по URI?

Как загрузить звук в soundpool из URI? Сейчас таким методом не работаетХотя из raw все грузит

196
Java рекурсия stackoverflow exception

Java рекурсия stackoverflow exception

В программе существует несколько синхронизированных потоков, каждый из них рекурсивен, и создает новый объект который содержит в себе примерно...

166
Java - Записать куки на все пути URL

Java - Записать куки на все пути URL

В сервлете по URL - /user/registration регистрирую пользователя и записываю в его браузер куки

173