diff --git a/goroutine/pipeline.go b/goroutine/pipeline.go new file mode 100644 index 0000000..8c7924b --- /dev/null +++ b/goroutine/pipeline.go @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" +) + +func main() { + done := make(chan int) + p := make(chan int) + go func() { + for i := 0; i < 5; i++ { + p <- i + } + }() + go func() { + for { + x := <- p + done <- x * x + } + + }() + for i := 0; i < 5; i++ { + fmt.Println(<-done) + // 0, 1, 4, 9, 16 + } +}