栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Go运行时使用的线程数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go运行时使用的线程数

没有直接的相关性。您的应用使用的线程数可能小于,等于或大于10。

引用的软件包文档

runtime

GOMAXPROCS变量限制了可以同时执行用户级Go代码的操作系统线程的数量。
对于代表Go代码的系统调用中可以阻止的线程数量没有限制;那些不计入GOMAXPROCS限制。该软件包的GOMAXPROCS函数查询并更改限制。

因此,如果您的应用程序没有启动任何新的goroutine,则线程数将少于10。

如果您的应用程序启动了许多goroutine(> 10),其中没有一个阻塞(例如,在系统调用中),则10个操作系统线程将同时执行您的goroutine。

如果您的应用程序启动了许多goroutine,而这些goroutine在系统调用中被阻止(超过10个),则将产生10个以上的OS线程(但最多只能执行10个执行用户级Go代码)。

请参阅以下问题的示例和详细信息:当在golang中写入文件时,由于阻塞了许多goroutine,为什么为什么它不会创建很多线程?

编辑(响应您的编辑):

我相信的默认值

GOMAXPROCS
是逻辑CPU的数量,这是有原因的:因为通常提供最高的性能。您可以将其保留。通常,如果您只有1个goroutine,并且确定您的代码不会产生更多代码就
GOMAXPROCS=1
足够了,但是您应该进行测试并且不要花任何时间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号