Атомарная операция: если текущее значение равно ожидаемому, записать новое и вернуть true; иначе не менять и вернуть false. В Go: atomic.CompareAndSwapInt32, CompareAndSwapInt64 и т.д. Основа для lock-free алгоритмов и спинлоков.
for !atomic.CompareAndSwapInt64(&n, old, new) { old = atomic.LoadInt64(&n) }