Goroutines 是轻量级进程,由 Go 运行时自动将时间切片到一个或多个操作系统线程上。(这是Go 的一个非常酷的功能!)假设我有一个像网络服务器这样的并发应用程序。在我的假设程序中同时发生了很多事情,没有太多的非并发(阿姆达尔定律)比率。似乎当前使用的操作系统线程的默认数量是 1。这是否意味着只有一个 CPU 内核被使用?如果我开始我的程序runtime.GOMAXPROCS(runtime.NumCPU())这会合理有效地使用我 PC 上的所有内核吗?使用更多操作系统线程是否有任何“并行松弛”好处,例如通过一些启发式runtime.GOMAXPROCS(runtime.NumCPU() * 2)?
- 3 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消