如果我启动一个goroutine,其中将无限选择,那么:1)事实证明,如果这样的goroutine挂在处理器上,那么效率为零(如果通道中没有发生任何事件)。在默认情况下通过Gosched()将这个goroutine从核心转移是否正确(选择案例构造)2)如果我删除这个goroutine,它是否会被添加到等待处理的goroutines队列中,如果要处理的事件将很快出现在这个 goroutine 的某个频道中?
如果我启动一个goroutine,其中将无限选择,那么:1)事实证明,如果这样的goroutine挂在处理器上,那么效率为零(如果通道中没有发生任何事件)。在默认情况下通过Gosched()将这个goroutine从核心转移是否正确(选择案例构造)2)如果我删除这个goroutine,它是否会被添加到等待处理的goroutines队列中,如果要处理的事件将很快出现在这个 goroutine 的某个频道中?
在这篇文章中:
内核加载确实是 100%。这是由于默认部分的存在。如果在没有活动的情况下您不需要任何东西
然后这个 goroutine 将简单地等待循环中的事件,如果没有事件,它不会产生任何负载。
默认情况下,插入 time.Sleep(time.Millisecond)。