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语言示例程序介绍了如何使用Go关键字实现并发操作,并展示了如何创建带缓存的通道以及其在并发场景下的工作原理。通过具体代码演示了goroutine如何写入通道及通道关闭机制。
335

被折叠的 条评论
为什么被折叠?



