Назад к задачам
WildberriesПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
5
Определение максимального чётного числа с конкурентным доступом и обнаружение гонки данных
Компании, где спрашивали:
Условие задачи
В данном упражнении рассматривается программа, которая пытается вычислить наибольшее чётное число из диапазона от 1 до 1000, используя несколько горутин. Требуется выполнить несколько шагов:
- Предсказать, какой результат будет выведен на экран.
- Выявить ошибки в реализации (гонка данных, неверный итоговый результат и т.п.).
- Предложить корректные изменения, устраняющие проблемы.
import "fmt"
func main() {
var max int
for i := 1000; i > 0; i-- {
i := i
go func () {
if i%2 == 0 && i > max {
max = i
}
}()
}
fmt.Printf("Maximum is %d",max)
}