Golang 使用超过 1 个 CPU [已关闭]

问题描述 投票:0回答:2

我想了解 golang 如何在不添加 goroutine 的情况下为程序使用超过 1 个 CPU 和多个线程?

默认情况下会使用 GOMAXPROCS 定义的所有内核吗?

time go run main.go 
go run main.go 281.55s user 32.68s system 166% cpu 3:08.59 total

这是活动监视器显示的内容

go goroutine
2个回答
0
投票

Go 编译器和运行时对某些操作执行自动并行化,例如内存分配、垃圾收集和一些标准库函数(例如,

sort.Sort
sync.WaitGroup
)。即使您没有显式创建 goroutine,这些操作也会自动跨多个线程和 CPU 并行化。


-4
投票

最有可能的是,可能有一个库函数或编译器任务在底层使用 go 例程。 Go 默认使用 goroutine 来完成许多任务。

© www.soinside.com 2019 - 2024. All rights reserved.