一、select的使用
select监听channel上的数据流动方向
二、select实现fibonacci(斐波那契)数列
规律:x=y y=x+y (x,y从1开始)
package main
import (
"fmt"
"runtime"
)
func fibonacci(ch <-chan int, quit <-chan bool) {
for {
select {
case num := <-ch:
fmt.Print(num, " ")
case <-quit:
runtime.Goexit()
}
}
}
func main() {
ch := make(chan int)
quit := make(chan bool)
go fibonacci(ch, quit) //打印数字,
x, y := 1, 1
for i := 0; i < 20; i++ {
ch <- x
x, y = y, x+y
}
quit <- true
}
三、数列select超时