Sobes.tech
Junior — Senior
52

Конкурентный упорядоченный вывод чисел с синхронизацией

Компании, где спрашивали:

Самокат Тех
Условие задачи

Необходимо изменить представленный код так, чтобы:

  • числа от 1 до 10 выводились параллельно с использованием горутин;
  • при этом сохранялась строгая последовательность вывода (1, 2, 3, ..., 10);
  • между выводами каждого числа делалась пауза в одну секунду (реализовано функцией showNumber).
import (
        "fmt"
        "time"
        )

func main () {
    for cur := 1; cur < 11; cur++ {
        // TODO: запустить горутину, вызывающую showNumber(cur)
    }
}

func showNumber(val int) {
        time.Sleep(time.Second)
        fmt.Println(val)        
    }