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

时间:2018-02-13 14:26:49

标签: go

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

for{}将涵盖100%的cpu使用率。

select{}询问频道案例是否可以读写。但在选择中没有任何情况。 select{}将使用0%的cpu使用率?或者就像for{}

一样

1 个答案:

答案 0 :(得分:10)

for{}使用100%CPU,因为它会持续执行循环迭代。

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