52 lines
768 B
Go
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)
|
|
}
|
|
}
|