Go
阿信在这里
这个作者很懒,什么都没留下…
展开
-
Go goroutine
使用sync.WaitGroup和go 组合,实现多线程 可增长的栈 OS线程一般都有固定的栈内存(通常为2MB),一个gorutine的栈在其生命周期开始时只有很小的栈(典型情况下2KB),goroutine的栈不是固定的,它可以按需增大和缩小,goroutine的栈大小限制可以达到1GB,虽然极少会用到这么大。所以在Go语言中,一次创建十万左右的goroutine也是可以的。 goroutine调度 GMP是Go语言运行时(runtime)层面的实现,是go语言自己实现的一套调度系统。区...原创 2021-07-06 10:34:12 · 80 阅读 · 0 评论 -
Go channel
Go语言的并发模型是CSP(Communicating Sequential Processes),提倡通过通信共享内存而不是通过共享内存而实现通信 channel是Go程序并发线程之间的连接,channel是可以让一个goroutine发送特定值到另外一个goroutine的通信机制 channel是一个FIFO的管道,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。 通道是引用类型,通道类型的空值是nil var ch chan int原创 2021-07-06 10:12:29 · 175 阅读 · 0 评论