sunxiaoming
发贴: 21
积分: 0
|
于 2006-11-26 10:00
请大家帮我解释一下,我有点想不通,子线程调用sleep 为什么主线程却暂停了2秒后才执行?(是因为子线程休眠的时候,整个程序处于挂起状态么?为什么?)
(我想实现的是:将子线程设置成后台线程->启动->后休眠->然后主线程结束->程序退出!我得到的结果却是:程序启动后马上输出了子线程的打印(这里我想是因为子线程代码简单,执行的时间非常的段所以先输出了子线程的打印),然后等2秒后才输出主线程的打印!(这里想不通)
public class SleepTest {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ThreadTest tt = new ThreadTest(); Thread pp = new Thread(tt); pp.setDaemon(true); pp.start(); try { pp.sleep(2000); } catch (Exception e) { e.printStackTrace(); } System.out.print(tt.i);
}
}
class ThreadTest implements Runnable { static int i;
public void run() { // TODO Auto-generated method stub i++; System.out.println("test sub running!!");
}
}
|