开启一个writeData 的协程,向管道intChan 中放入50个整数
开启一个readData的协程,从intChan中读取writeData写入的数据
注意:readData和writeData使用的是同一管道
主线程需要等到intChan和writeChan执行完毕才能继续执行退出(管道)
package main
import (
"fmt"
"time"
)
func writeDate(intChan chan int){ //开启一个writeData协程 读取50个整数,放到intChan中
for j:=0;j<50;j++{
intChan <- i
fmt.Println("%v 写入管道中\n",i)
}
time.Sleep(Second)
close(intChan) //关闭写入管道
}
func readData(intChan chan int,exitChan chan bool){ //开启一个readData协程 ,读取intChan中的数据
for {
v,ok := <- intChan
if !ok{
break
}
fmt.Printf("读取管道数据中%v \n",v)
}
exitChan <- true
close(exitChan) //关闭判断管道
}
func main() {
intChan := make(chan int,50)
exitChan := make(chan bool,1)
go writeDate(intChan)
go readDate(intChan,exitChan)
for{
v,ok := <- exitChan
if !ok{
break
}
}
}