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

2019-10-15 11:45:08 浏览数 (1)

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的情况。

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

0 人点赞