diff --git a/协程/输出100/main.go b/协程/输出100/main.go index 1a18845..f49af00 100644 --- a/协程/输出100/main.go +++ b/协程/输出100/main.go @@ -1 +1,31 @@ -package 输出100 +package main + +import ( + "fmt" + "sync" +) + +func main() { + channel := make(chan int, 10) + var wg sync.WaitGroup + + wg.Add(1) + go func(wg *sync.WaitGroup, channel chan<- int) { + defer wg.Done() + for i := 0; i < 100; i++ { + channel <- i + } + close(channel) + }(&wg, channel) + + wg.Add(1) + go func(wg *sync.WaitGroup, channel <-chan int) { + defer wg.Done() + for num := range channel { + fmt.Println(num) + } + }(&wg, channel) + + wg.Wait() + +}