while(true){

usleep(1); //睡1微秒,cpu占1%到2%
sleep(); //同样有效,只是cpu占用率会到15%,因为sleep会有函数调用操作,需要时间,只是这时间非常小,要小于1微秒,所以cpu占用率要高一点。

}

只要在死循环中增加sleep即可。适应于时效性不是非常即时,要精确到微秒级别的应用。

因为在本机测试1s中,可以处理1亿次循环。相当于10纳秒处理1个循环。usleep(1) 会休眠1000纳秒,1000纳秒能处理100个循环,这样就等于处理1个循环,则会让出100个循环给其它应用。近似于节省了99%的cpu

Comments are closed.

Post Navigation