profiling/blocking/efficient.go (15 lines of code) (raw):

package blocking import "time" var BufCh = make(chan int, 3) func EfficientProducer() { for i := 0; i < 5; i++ { BufCh <- i } close(BufCh) } func EfficientConsumer() { for val := range BufCh { time.Sleep(time.Second) // slow processing println("Received:", val) } }