xxxxxxxxxx
func Send(wg *sync.WaitGroup, c chan int, n int) {
time.Sleep(time.Second * 3)
wg.Done()
c <- n
}
func main() {
ch := make(chan int)
var wg sync.WaitGroup
fmt.Println("Channel Start")
for i := 1; i <= 10; i++ {
wg.Add(1)
go Send(&wg, ch, i)
}
wg.Wait()
func(c chan int) {
for {
select {
case res := <-c:
fmt.Printf("Channel Received Data: %d\n", res)
default:
defer close(c)
fmt.Println("Channel Not Received Data")
return
}
}
}(ch)
defer fmt.Println("Channel Finished")
}