应用
实例1
package main
import (
"fmt"
)
// 写入数据
func writeData(intChan chan int) {
for i := 1; i <= 50; i++ {
// 放入数据
fmt.Printf("writeData=%v\n", i)
intChan <- i
}
close(intChan)
}
// 读取数据
func readData(intChan chan int, exitChan chan bool) {
for {
v, ok :=<- intChan
if !ok {
break
}
fmt.Printf("readData=%v\n", v)
}
// readData 读取完数据后,即任务完成
exitChan <- true
close(exitChan)
}
func main() {
// 创建两个管道
intChan := make(chan int, 50)
exitChan := make(chan bool, 1)
// 协程
go writeData(intChan)
go readData(intChan, exitChan)
for {
_, ok :=<- exitChan
if !ok {
break
}
}
}