Go语言核心部分就一个关键字go
package main
import (
"fmt"
"runtime"
"time"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
c := make(chan int, 10)
go func() {
for i := 0; i < 20; i++ {
c <- i
fmt.Println("write", i)
}
close(c)
}()
for v := range c {
fmt.Println("read", v)
time.Sleep(1 * time.Second)
}
}
make创建chanel的时候可以指定是否有缓存,有缓存的chanel在缓冲区被填满之前是不会阻塞的。