Как компилятор может переупорядочить инструкции?

Senior
86 просмотров
AFK Offer AI

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

Следующий вопрос

Как оптимизировать autovacuum?