go - golang 中的 select{} 和 for{} 有什么区别?

标签 go

我发现了一个类似的问题:What does an empty select do?

for{} 将覆盖 100% 的 CPU 使用率。

select{} 询问 channel 大小写是否可以读或写。但是在select中没有case。 select{} 将使用 0% 的 CPU 使用率?或者就像 for{} 一样?

最佳答案

for{} 使用 100% CPU,因为它不断执行循环迭代。

select{} 使用几乎 0% 的 CPU,因为它导致 goroutine 阻塞,这意味着调度程序将其置于休眠状态,并且永远不会被唤醒。

关于go - golang 中的 select{} 和 for{} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48769062/

相关文章:

go - 无法构建具有外部模块本地副本的项目

go - 如何限制 Golang 中变量的值?

casting - 如何将未编码的 Golang 对象转换为指定变量的类型

go - 在项目结构中生成临时文件夹

mysql - 使用 Mysql 在 Go 中创建父子嵌套 json

mongodb - 如何将 compose mongodb 与 golang 连接起来

go - 我怎样才能有一个用于多个包的通用测试套件?

go - 处理来自单个 channel 的多个错误

go - 对阻塞 channel 感到困惑

go - 如何插入 byte slice ?