package main
import (
"fmt"
)
func main() {
jobs := make(chan int, 5)
done := make(chan bool)
go func() {
for {
//读取通道方式, val,ok := <-chan 通道关闭后,ok是false
j, more := <-jobs
if more {
fmt.Println("received job", j)
} else {
fmt.Println("received all jobs")
done <- true
return
}
}
}()
for j := 1; j <= 3; j++ {
jobs <- j
fmt.Println("sent job", j)
}
//关闭通道
close(jobs)
fmt.Println("sent all jobs")
<-done
}
相关文章
- 04-12Go Example--关闭通道
- 04-12Go Example--递归
- 04-12Go Example--锁
- 04-12Go Example--缓存通道
- 04-12[Golang]-6 超时处理、非阻塞通道操作、通道的关闭和遍历
- 04-12Go Example--通道方向
- 04-12【博客413】Go 优雅关闭channel
- 04-12GO通道和 sync 包的分享
- 04-12GO通道和 sync 包的分享
- 04-1227《Go语言入门》单向通道(chan)