diff --git a/bilibili/aceld/goroutine/channel/test5/main.go b/bilibili/aceld/goroutine/channel/test5/main.go new file mode 100644 index 0000000..99408a0 --- /dev/null +++ b/bilibili/aceld/goroutine/channel/test5/main.go @@ -0,0 +1,33 @@ +package main + +import "fmt" + +func fibonacii(c, quit chan int) { + x, y := 1, 1 + + for { + select { + case c <- x: + temp := x + x = y + y = temp + y + case <-quit: + fmt.Println("quit") + return + } + } +} + +func main() { + c := make(chan int) + quit := make(chan int) + + go func() { + for i := 0; i < 30; i++ { + fmt.Println(<-c) + } + quit <- 0 + }() + + fibonacii(c, quit) +}