34 lines
504 B
Go
34 lines
504 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
ch := make(chan int)
|
|
|
|
go func() {
|
|
for i := 1; i <= 5; i++ {
|
|
time.Sleep(500 * time.Millisecond)
|
|
ch <- i
|
|
}
|
|
close(ch)
|
|
}()
|
|
|
|
for {
|
|
select {
|
|
case v, ok := <-ch:
|
|
if !ok {
|
|
fmt.Println("channel 已关闭,退出循环")
|
|
return
|
|
}
|
|
fmt.Println("收到:", v)
|
|
default:
|
|
// 没有数据可读时,做点“其他事”
|
|
fmt.Println("没有新数据,先忙点别的...")
|
|
time.Sleep(200 * time.Millisecond)
|
|
}
|
|
}
|
|
}
|