Как я знал что volatile это обеспечение синхронизации переменной между кэшами процессорами, уведомляя каждое ядро перед началом изменения и после окончания изменения, какую роль здесь играет кэш третьего уровная, как я читал что он может использоваться как буфер для синхронизации данных, значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?
значит ли что volatile переменная хранится в кэше третьего уровня, а значит что чуть чуть медленнее?
Нет. Прямой зависимости между volatile переменной и кешем третьего уровня - нет.
Как уже заметили выше, ключевое слово volatile гарантирует, что изменения переменной в одном потоке будут видны остальным потокам из-за правил happens before. Подробнее тут
С кешами L1, L2, L3 работает только сам процессор. Он сам решает какие данные подгружать. У нас нет доступа к кешу процессора ни через С ни через ассемблер (поправьте меня в комментариях, если я не прав) Подробнее на вики.
Теоретически при частом обращении к одной и тоже переменной процессор может положить ее в кеш, но мы не можем гарантировать это на 100%
P.S:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу создать класс, наследуемый по классу ArrayList и переопределить его методы ( допустим добавить в методadd() счётчик, который будет подсчитывать...
Как загрузить звук в soundpool из URI? Сейчас таким методом не работаетХотя из raw все грузит
В программе существует несколько синхронизированных потоков, каждый из них рекурсивен, и создает новый объект который содержит в себе примерно...
В сервлете по URL - /user/registration регистрирую пользователя и записываю в его браузер куки