RSS
菜单

Go goroutine 与线程的区别?为什么能支撑十万级高并发

① 内存:goroutine 初始栈仅 2-4KB 可动态增长(最大 1GB),线程栈固定 MB 级;② 调度:goroutine 由 Go 运行时用户态调度(GMP),线程由内核调度,goroutine 切换成本远低于线程;③ 数量:单机可开数十万 goroutine,线程数千就到极限;④ 通信:goroutine 用 channel 协作,线程常用锁;⑤ 创建:go 关键字极快(~100ns),线程创建 μs 级。goroutine 是“轻量线程”,但最终跑在线程上。

下载推广海报

圈内讨论推广海报

《Go goroutine 与线程的区别?为什么能支撑十万级高并发》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。