packagemain
import(
"fmt"
"sync"
)
//实现一个生产者和消费者
/*生产者产生数据添加到通道里面,消费者消费数据从通道里面
不带缓存实现
*/
funcmain(){
ch:=make(chanint)
varwgsync.WaitGroup
wg.Add(2)
goproducers(&wg,ch)
goconsumer(&wg,ch)
wg.Wait()
}
//生产者
funcproducers(wg*sync.WaitGroup,chchanint){
fori:=0;i<10;i++{
fmt.Println("send:",i)
ch<-i
}
close(ch)
wg.Done()
}
//消费者
funcconsumer(wg*sync.WaitGroup,chchanint){
forv:=rangech{
fmt.Println("recv:",v)
}
wg.Done()
}
���$�