日期:2014-05-18  浏览次数:20663 次

请教一个线程的问题,递归和死循环的问题
public   void   run(){
try   { for(int   i=0;i <1000000;i++){ System.out.println( "操作中... ");
}
Thread.sleep(5000);
run();
}   catch   (InterruptedException   e)   {
e.printStackTrace();
}
}


------------------------------------------------------


public   void   run(){
try   {
while(true){
for(int   i=0;i <1000000;i++){ System.out.println( "操作中... ");
}
Thread.sleep(5000); }
}   catch   (InterruptedException   e)   {
e.printStackTrace();
}
}


这两种写法哪个好一些,有没有会造成死机的可能,还有没有更好的方法?


我想让这个程序在做完了一件事情之后,休息5秒钟再重复做这样一个事情,比如数到数据库里面查看有多少帖子是新发的

------解决方案--------------------
boolean stop = false;

public void run(){
while( !stop ){
try{
doSomething();
Thread.sleep(5000);
}catch(Throwable t){
t.printstacktrace();
}
}
}
------解决方案--------------------
递归不要用,无论是在哪里,更何况你还用在线程里面,这不是找死吗???
按你所说的
我想让这个程序在做完了一件事情之后,休息5秒钟再重复做这样一个事情
可以按楼上hellking(信息孤岛) 这位朋友的思路去做,而且还可对stop 提供set和get方法,那么你就可以在外面人为的控制循环了......