只要在死循环中增加sleep
即可。
代码语言:javascript
复制<?php
while(true){//CPU占用率高
//TODO
}
while(true){//改进后降低CPU占用率
//TODO
sleep(1);
}
适应于时效性不是非常即时,要精确到微秒级别
的应用。
因为在本机测试1s
中,可以处理1亿次循环
。
相当于10纳秒
处理1个循环
。
sleep(1)
会休眠1000纳秒
,1000纳秒
能处理100个循环
,这样就等于处理1个循环
,则会让出100个循环
给其它应用。近似于节省了99%的cpu
。