Go协程,用通道传输数据
            
            
              bash
              
              
            
          
          func GolistChanTest() {
 
	loopTimes := 10
	log.Infof("start")  
	gn := make(chan int, 2)
	listChan:= make(chan map[int]string, int(loopTimes))
	wg := sync.WaitGroup{}
	loopEndTime := loopTimes - 1
	for i := 0; i < int(loopTimes); i++ {
		wg.Add(1)
		gn <- 1
		go func(page int) {
			defer func() {
				wg.Done()
				<-gn
			}()
			list := make(map[int]string)
			for i := 0; i < 10; i++ {
				list[page*10+i] = fmt.Sprintf("=%d*10+%d", page, i)
			}
			listChan<- list
			if loopEndTime <= page {
				close(listChan)
			}
			time.Sleep(300 * time.Millisecond)
		}(i)
	}
	result := make(map[int]string, 0)
	for num := range listChan{ // 从通道中读取数据,直到通道关闭
		for key, value := range num {
			result[key] = value 
		}
	}
	wg.Wait()
	close(gn)
	log.Infof("result :%+v", result)
}