golang使用select,for cpu 使用100%为啥?

for

如果for循环体一直处于繁忙状态,则cpu被一直抢占,而cpu居高不下,如果循环体有io等待则会出让cpu,不会一直抢占。

select

监听各case的io事件,各case必须都是 chan,一旦有一个case触发io则执行case块如果没有default,则select会被一直阻塞,如果有default,则在没有io事件时,直接执行default块,退出select。

for select

在有default的情况下,很容易造成类似for死循环 抢占cpu的情况。

看完本文有收获?请转发分享更多人

本文分享自微信公众号 - nginx遇上redis(GGame_over_the_world)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励