關於while(true)致使CPU太高

前一段時間在配置Dubbo的時候,從網上找到的例子,代碼中經過main函數將環境啓動,而且經過while(true)讓程序保持,即不關閉。當我有兩個服務項目同時啓動的時候,個人電腦已經卡的不能動了(8G內存,2核CPU)。 html

當時同事提示我,是while的問題,我還一臉迷惑。後來,老大告訴,Dubbo的啓動,能夠用他提供的Main類來啓動,看了一下它的程序,在啓動完成後,他執行了一個wait()方法。 函數

業餘時間,我經過設置了個sleep方法,發現我啓動的Dubbo,CPU利用率也不高了。不明緣由。因而,從網上查詢信息,發現涉及到操做系統的知識,不由悔恨當初沒有好好學習。具體以下: 學習

當切換到別的進程時,別的進程告訴系統本身沒什麼事情要作,不須要那麼多的時間,這個時候系統就會切換到下一個進程,直到回到這個死循環的進程上,而這個進程不管何時都再循環,因此一直會報告有事情要作,系統就會把儘量多的時間分給他。其實是這個死循環任務用光了別的進程節省下來的時間。
(摘自:http://blog.sina.com.cn/s/blog_74a459380102uwcb.html)
spa

相關文章
相關標籤/搜索