正常的 while true 为什么不加 sleep 也不会耗尽 cpu?
資深大佬 : pinews 10
单线程啊大哥
大佬有話說 (15)
如果是 8 核的机器搞一个死循环然后去看 cpu.busy 的监控会发现一条 12.5% 左右的线
我借之前一个网友去快递点取快递的例子总结下。
第一个是,去了发现没有就回来,然后马上再接着去(很累很蠢,因为本来是预计已经到了,只取一次的)
第二个是,去了发现没有就回来,过一会( sleep )再去(不累了,但是会不及时)
第三个是,去了返现没有,就在那里等,如果在这个时间里没等到就回来,然后接着去,但是很有可能等到,或者干脆等不到就不回来,直到等到才回去(不累也很及时,但是要快点递支持在里面等)
例子不是很恰当,大概是这个意思吧,那个 iowait 应该是第三种吧,所以 while true 没 sleep 能又快又轻松完成任务。