如何降低死循環的 CPU 占用


有的時候程序中需要使用死循環,比如消息監聽就要用一個死循環,直到受到消息請求關閉才可能跳出循環。

一個 while(true){} 的循環中即便循環體是空的,也會占用幾乎一整個 CPU 核心。為了降低死循環帶來的CPU占用,可以考慮在其中加入 Sleep(1)  調用來降低占用 while(true){ Sleep(1) } 。原理是  Sleep(1)  會釋放 CPU 一小會兒。雖然參數設置的是1毫秒,但是CPU通常以納秒為單位運行,於是對於整個 CPU 核心來講這1毫秒已經是非常久了。通常情況下這樣的帶有睡眠的死循環的 CPU 占用率是不帶睡眠的死循環的1%以下。對於一般的程序而言這可能已經能夠解決問題了,但是對於消息非常密集的程序而言這可能導致消息響應速度慢。睡眠是針對線程而非進程的,這一點也要知道。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM