Урок 98 · Задача 2

UpdateMax: CAS-loop для максимума

Статистика пишет пиковый размер. Реализуйте updateMax(m *atomic.Int64, v int64): запишите v, только если он больше текущего — CAS-loop.

00:00:00
Показать решение
GolangРешение
func updateMax(m *atomic.Int64, v int64) {
	for {
		old := m.Load()
		if v <= old {
			return
		}
		if m.CompareAndSwap(old, v) {
			return
		}
	}
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки