知识卡片

Goroutine轻量执行

专业/工作 · 489.b.2.b.1.a.1.c.1.b

内容

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):前文已有介绍,这里不再赘述。需要补充的是,线程拥有自己独立的栈和共享的堆,共