UpdateMax: CAS-loop для максимума
Статистика пишет пиковый размер. Реализуйте updateMax(m *atomic.Int64, v int64): запишите v, только если он больше текущего — CAS-loop.
Показать решение
GolangРешение
func updateMax(m *atomic.Int64, v int64) {
for {
old := m.Load()
if v <= old {
return
}
if m.CompareAndSwap(old, v) {
return
}
}
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн