package main
import "fmt"
func main() {
intChan := make(chan int, 10)
for i := 0; i < 10; i++ {
intChan <- i
}
close(intChan)
//同步信号
syncChan := make(chan struct{}, 1)
go func() {
Loop:
for {
select {
case e, ok := <-intChan:
if !ok {
fmt.Println("End.")
break Loop
}
fmt.Printf("Received: %v\n", e)
}
}
syncChan <- struct{}{} //同步信号
}()
<-syncChan
}
/*
输出结果:
Received: 0
Received: 1
Received: 2
Received: 3
Received: 4
Received: 5
Received: 6
Received: 7
Received: 8
Received: 9
End.
*/
网友评论