2013-10-25 172 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