Go采坑之select
Go采坑之select
一、前言
测试的时候,发现服务器CPU一直处于占用100%的状态,但印象中服务应该没有很占CPU占用的地方,于是通过pprof来抓取,查看CPU占用的情况。
1.先通过pprof获取cpu的占用情况
- 直接通过http://127.0.0.1:8080/debug/pprof/查看
- 通过web查看
1 |
|
1 |
|
二、理论
对于select语句,每个case的IO事件都是阻塞的,监听IO事件是不会占用CPU至满的。造成CPU占用的原因是这个空default,因为当case的条件不满足时,循环将会走default,然后执行下一个循环,这就造成了死循环,因此在使用for-select语句的时候不能定义空的default
参考:
https://blog.haohtml.com/archives/19670
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!