一、一个进程写,一个进程读, 一个管道存数据, 一个管道进行退出控制。
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
}
}
}
Go并发:通道与退出控制
本文介绍了一个使用Go语言实现的简单并发模式,通过两个通道分别用于数据传递和退出信号控制。一个goroutine负责生成并发送数据到intChan通道,另一个goroutine则从该通道读取数据并打印,直到通道关闭。同时监听exitChan通道的退出信号,以优雅地结束程序。
798

被折叠的 条评论
为什么被折叠?



