Buffered Channel
Last updated
Last updated
package main
import (
"fmt"
"time"
)
func write(ch chan int) {
for i := 0; i < 20; i++ {
// write value
ch <- i
fmt.Printf("write%d ", i)
}
close(ch)
}
func main() {
ch := make(chan int, 12)
go write(ch)
for i := range ch {
// read value
fmt.Printf("%d ", i)
time.Sleep(700 * time.Millisecond)
}
}write0 write1 write2 write3 write4 write5 write6 write7 write8 write9 write10 0 1 write11 2 write12 write13 3 4 write14 5 write15 6 write16 7 write17 8 write18 9 write19 10 11 12 13
14 15 16 17 18 19