示例demo51
package main
import (
"fmt"
"time"
)
func sendData(ch chan int) {
//把数据写到通道里
for i := 0; i < 20; i++ {
ch <- i
fmt.Println("push data:", i)
}
}
func getData(ch chan int) {
//从通道里读取数据
var b int
for {
b = <-ch
fmt.Println("get data:", b)
time.Sleep(time.Second)
}
}
func main() {
ch := make(chan int, 10) //定义一个int类型chan 长度为10 写到10满了 就写不进去了 缓冲区就是10
go sendData(ch) //数据写到chan
go getData(ch) //从chan读取数据
time.Sleep(10 * time.Second) //休眠10秒,如果不休眠,主进程很快结束就看不到协程输出的值的
}