Go goroutine

golang/goroutine2026-10-16 18:03:58

Go goroutine是由 Go 运行时管理的并发执行单元,可通过 go 语句启动,运行时负责把它们调度到可用线程。

并发与资源

goroutine 的数量不等于可同时执行的 CPU 核数。它适合组织并发工作,但创建任务仍会消耗栈、内存和调度资源,服务应限制无界启动。

退出与同步

实践中为每个 goroutine 设计完成或取消路径,并由明确的所有者等待结果。阻塞在永远没人发送的通道、忽略取消或没有清理的后台循环,都可能长期存活。

共享状态需要同步。发生数据竞争时可结合 race detector 排查,不能因为 goroutine 由运行时调度就认为普通 map 或复合更新天然安全。

参考资料

本页目录