Go基础学习-goroutine

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在缓冲区被填满之前是不会阻塞的。

你可能感兴趣的:(Go)