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)
		}
	}
}
