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()
}
???$?