知识卡片
Goroutine轻量执行
内容
goroutine 是 Go 的基本执行单元,启动成本低并可运行在一个或多个线程上。轻量不代表无限:大量 goroutine 仍会带来内存、调度和 GC 压力,需要配合限流或池化。池化的具体做法见 [[协程池限制压力]]。
参考来源
- 位置:《Go语言高级开发与实战》第4章《Go语言并发编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_036.html)
- 结论依据:原文称 goroutine 是 Go 最基本执行单元,并在协程池处说明大量 goroutine 会带来内存和 GC 压力,因此支撑轻量但有限。
- 原始内容:4.3 Go语言并发模型 Go语言最大的特色就是从语言层面支持并发goroutine,goroutine是Go语言中最基本的执行单元。事实上每一个Go程序至少有一个goroutine:主goroutine。当程序启动时,它会自动创建。为了更好地理解goroutine,下面讲一下线程和协程的概念。 线程(thread):前文已有介绍,这里不再赘述。需要补充的是,线程拥有自己独立的栈和共享的堆,共