![](/img/trans.png)
[英]Golang: calculate how many goroutines are started by worker itself?
[英]How many goroutines are started by default in a Go program?
package main
import (
//"time"
"runtime"
"fmt"
)
func main() {
//time.Sleep(100 * time.Millisecond)//By adding this number of goroutine increases
fmt.Println(runtime.NumGoroutine())
}
我试图找出程序中的goroutine数量。 我的代码在这里 。 在编写此代码时,我注意到goroutine的默认数量为4。
为了我:
还有什么?
通过添加time.Sleep (上面),goroutine的数量增加到5。这是什么原因?
实际上,内存管理需要多个goroutine ...
4个初始goroutine是:
然后,调用time.Sleep函数。 它需要一个计时器。 计时器是通过附加的goroutine(timerproc)在运行时中实现的,该例程可处理存储在计时器堆中的事件。 当第一个计时器添加到堆时,此goroutine会延迟启动。
因此,您最终获得了5个goroutine。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.