go - 单核上的goroutine是否更快?

标签 go

如果我在其上运行go代码的服务器只有一个内核,我可以通过在其上运行goroutines来期待更好的性能吗?是的,为什么在没有并行机制的情况下速度更快?

最佳答案

这取决于代码和您要阻止的内容。如果您正在阻塞I / O(但仍有其他非I / O工作要做),则单个内核上的多个goroutine可能会大大加快。如果您在CPU上阻塞,则由于额外的开销,多个goroutine可能会变慢。如果您在内存上进行阻塞,则由于额外的争用和缓存无效化,多个goroutine的速度可能会大大降低。没有普遍的答案。这取决于您要用并发解决什么问题,以及如何实现它。

关于go - 单核上的goroutine是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60518622/

相关文章:

go - 复制对指针或按值的引用

go - 使用指针和接口(interface)以及自定义类型

user-interface - 如何在 go winc gui windows 库 OnDropFiles 事件中获取文件名

google-app-engine - Go: install drive v2 package cmd/cgo 报错

mysql - 使用 sql.DB 的无效内存地址或 nil 指针取消引用

go - 使用Gin从组内提供静态文件

go - 如何读取来自 NewSingleHostReverseProxy 的响应

json - 将响应数据处理到Struc中

go - 如何使用 golang 打印到浏览器控制台

sql - PostgreSQL 插入多个表和行