1.14 之前的主动让出的调度为什么就使得STW的时间变长

来源:1-4 Go 程序是怎么跑起来的

weixin_慕移动6186909

2021-08-18 21:29:49

1.14之前的基于主动让出的调度和1.14的抢占式调度的一个疑问:1.14 之前的主动让出的调度为什么就使得STW的时间变长、为什么会延长栈扫描时间呢(https://go.googlesource.com/proposal/+/master/design/24543-non-cooperative-preemption.md

tSlMxJwolnNZD09C.png!thumbnail?accessTok

写回答

1回答

Xargin

2021-08-23

老版本 scanstack 需要把所有 goroutine 停下来,循环次数比较多的 goroutine 内部没有函数调用,那 scanstack 必须等待它主动停下来,这段时间是在 stw 里的


如果是个死循环,那 stw 就会无限持续下去

0

Go高级工程师实战营

慕课网与 GoCN 社区官方联手打造,定义行业Go高级人才培养标准,4个月,快速晋升为P6+/D7级高级人才。

458 学习 · 266 问题

查看课程