learning_go/headFirst/routines/main.go
2025-10-30 11:34:42 +03:00

52 lines
768 B
Go

package main
import (
"fmt"
"sync"
// "time"
)
// func a(name int, channel chan int, wg *sync.WaitGroup) {
// defer wg.Done()
// for i := 0; i < 3; i++ {
// fmt.Printf("Number %d is sending\n",name)
// channel <- name
// }
// fmt.Printf("Num %d is ended\n",name)
// }
func test(name int,channel chan []int, wg *sync.WaitGroup) {
defer wg.Done()
inter := []int{}
for i := 0; i < 3; i++ {
inter = append(inter, name)
}
channel <- inter
}
func main() {
var wg sync.WaitGroup
_list := []int{1,2,3,4,5}
a_chan := make(chan []int)
for _,k := range _list {
wg.Add(1)
go test(k,a_chan, &wg)
}
go func() {
wg.Wait()
close(a_chan)
}()
// for i := range a_chan {
// fmt.Println(i)
// }
for i := range a_chan {
fmt.Println(i)
}
}