Компилятор Go (и процессор) может менять порядок операций если это не нарушает поведение в рамках одной горутины. Например, два независимых присваивания могут поменяться местами. Для другой горутины это может означать что она увидит новое значение одной переменной, но старое — другой. Поэтому без memory barriers (через sync примитивы) порядок наблюдений не гарантирован.
Как компилятор может переупорядочить инструкции?
Senior
86 просмотровAFK Offer AI
Как оптимизировать autovacuum?