package main import ( "fmt" "sync" ) type Res struct { num int name string } func Route(i int,k string, ch chan<- Res) { ch <- Res{ num: i, name: k, } } func main() { ch := make(chan Res,20) var wg sync.WaitGroup for i:= range 10 { for _,k := range []string{"thr1","thr2"} { wg.Add(1) go func () { defer wg.Done() Route(i, k, ch) }() } } wg.Wait() close(ch) for i := range ch { fmt.Println(i) } }