Если все обращения к общей переменной защищены одним и тем же мьютексом или критическим разделом, это позволит избежать скачков данных и непредвиденных значений в этой переменной, даже если потоки находятся на разных ядрах.Функции блокировки и разблокировки мьютекса будут включать в себя необходимые инструкции по синхронизации, чтобы гарантировать правильную синхронизацию кэшей между ядрами процессора.Внутри заблокированной области обычные инструкции могут использоваться для доступа к общим переменным.
Нет необходимости объявлять общие переменные как атомарные, если вы не собираетесь обращаться к ним без защитымьютекс.