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