2013-10-25 215 views
-1

在我的應用程序中,我有While(True){}循環連續運行。 這佔用了100%的CPU使用量。 即使這個while循環是從多個線程調用來運行某個特定的函數,所以它迫使CPU以100%的速度運行。循環與繼續處理

根據某些條件,我已經放置了一些睡眠像集合是空的,然後需要睡覺,但如果收集滿了,那麼它不會減少CPU的使用。

While(true) 
{ 
if(condition) 
Thread.sleep(30);//Under some condition 
//Process data on collection 
//Set sleep condition 
} 

我怎樣才能控制這個循環,並允許其他進程和線程工作。

+0

睡覺沒有if – bjan

回答

0

你會希望把睡眠後,如果:

while(true) 
{ 
    if (condition) { 
     //treat data 
    } 
    sleep(30) 
} 

現在當列表是空的,當它的全部,你又回到了主動等待你只是睡着了,因此100%的CPU