为什么go语言gc的时候要暂停整个程序

Python014

为什么go语言gc的时候要暂停整个程序,第1张

可以参考下这个。在stack scan阶段有一小段stw,和mark termination阶段要stw。之前要stw的mark和sweep阶段都是并行的,不需要stw的了。

里面也提到了1.5使用了write barrier的算法会导致吞吐量下降,1.6会根据实际使用情况平衡下延迟和吞吐量。

没有stw也是可以的,但吞吐量会进一步下降,未必是最佳选择。

我没有golang. 看别人用 exec.Command(命令字符串,参数字符串),照猫画虎如下,你试试。

import "os/exec"

cmd := exec.Command("CLS")

err := cmd.Run()

cmd2 := exec.Command("PAUSE")

err2 := cmd.Run()