на x86 и большинстве других современных процессоров вы можете получить атомарные инструкции. Те, которые ГАРАНТИРУЮТСЯ, не будут завершены до того, как другой поток / процессор сможет получить доступ к этой памяти.
В Win32 у вас есть функции Interlocked *, которые абстрагируют вас от вас на поддерживаемых платформах.
В MIPS для многих команд может быть добавлен .I в конце инструкции, чтобы гарантировать блокировку.