我試圖檢查 Go 將如何使用 100,000 個 goroutines 執行。我編寫了一個簡單的程序來生成許多例程,這些例程除了打印一些公告之外什么都不做。我將 MaxStack 大小限制為 512 字節。但是我注意到程序大小并沒有隨之減少。它消耗了大約 460 MB 的內存,因此每個 goroutine 大約消耗 4 KB。我的問題是,我們能否將 goroutine 的最大堆棧大小設置為低于“最小”堆棧大?。赡苁?4 KB)。我們如何設置 Goroutine 開始的最小堆棧大???下面是我用于測試的示例代碼:package mainimport "fmt"import "time"import "runtime/debug"func main() { fmt.Printf("%v\n", debug.SetMaxStack(512)) var i int for i = 0; i < 100000; i++ { go func(x int) { for { time.Sleep(10 * time.Millisecond) //fmt.Printf("I am %v\n", x) } }(i) } fmt.Println("Done") time.Sleep(999999999999)}
- 3 回答
- 0 關注
- 311 瀏覽
添加回答
舉報
0/150
提交
取消