golang-study/base/channel/oneway/main.go
2021-11-18 00:02:35 +08:00

44 lines
496 B
Go

package main
import (
"fmt"
"sync"
)
var wg = new(sync.WaitGroup)
// 只写 单向通道
func producer(ch chan<- int) {
defer wg.Done()
for i := 0; i < 200; i++ {
ch <- i
}
close(ch)
}
// 只读 单向通道
func consumer(ch <-chan int) {
defer wg.Done()
for i := range ch {
fmt.Printf("%d\n", i)
}
}
func main() {
// 可读可写 双向通道
ch := make(chan int, 10)
wg.Add(1)
go producer(ch)
wg.Add(10)
for i := 0; i < 10; i++ {
go consumer(ch)
}
wg.Wait()
}