Sobes.tech
Junior — Senior
67

Организованный вывод чисел из нескольких горутин

Companies where asked:

Yabbi
Task condition

В программе запускаются три горутины, каждая из которых печатает числа из собственного массива. Требуется изменить код так, чтобы числа выводились в строгом порядке, при этом вызов fmt.Println() должен оставаться внутри цикла каждой горутины.

package main

import (
        "fmt"
        "sync"
        )

func main() {
    var waitGroup sync.WaitGroup
    waitGroup.Add(3)

    go func() {
        for _, v := range []int{1, 4, 7} {
            fmt.Println(v)
        }
        waitGroup.Done()
    }()

    go func() {
        for _, v := range []int{2, 5, 8} {
            fmt.Println(v)
        }
        waitGroup.Done()
    }()

    go func() {
        for _, v := range []int{3, 6, 9} {
            fmt.Println(v)
        }
        waitGroup.Done()
    }()

    waitGroup.Wait()
}