初始化Go学习项目
This commit is contained in:
33
go-select-practice/select_default.go
Normal file
33
go-select-practice/select_default.go
Normal file
@@ -0,0 +1,33 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user