Как я знал что volatile это обеспечение синхронизации переменной между кэшами процессорами, уведомляя каждое ядро перед началом изменения и после окончания изменения, какую роль здесь играет кэш третьего уровная, как я читал что он может использоваться как буфер для синхронизации данных, значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?
значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?
Нет. Прямой зависимости между volatile переменной и кешем третьего уровня - нет.
Как уже заметили выше, ключевое слово volatile гарантирует, что изменения переменной в одном потоке будут видны остальным потокам из-за правил happens before. Подробнее тут
С кешами L1, L2, L3 работает только сам процессор. Он сам решает какие данные подгружать. У нас нет доступа к кешу процессора ни через С ни через ассемблер (поправьте меня в комментариях, если я не прав) Подробнее на вики.
Теоретически при частом обращении к одной и тоже переменной процессор может положить ее в кеш, но мы не можем гарантировать это на 100%
P.S:
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости