一、一个进程写,一个进程读, 一个管道存数据, 一个管道进行退出控制。
func main() { intChan := make(chan int, 20)
exitChan := make(chan bool, 1) go func(intChan chan int){
for i:=0;
i< 20;
i++ {intChan<- (i%2 + 1)
}
close(intChan)
}(intChan) go func(intChan chan int, exitChan chan bool) {
for{
v, ok := <-intChan
if ok {
fmt.Println(v)
}else{
exitChan<- true
close(exitChan)
break
}
}
}(intChan, exitChan) for {
_, ok := <- exitChan
if !ok {
break
}
}}
【Golang俩个线程实现交替打印1和2 10次】
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- GO|GO,GO,GO!
- Go成长之路|go中判断空字符串、nil和len(t)的用法
- go编译tools
- go grpc安装与使用
- goroutine 调度原理
- Go|Go进阶之路——复杂类型
- Go进阶之路——变量
- Go进阶之路——流程控制语句