我有线程不睡觉的问题。
我不能把我的整个代码放在这里。所以,要重现,这是一个等待 5 秒的基本代码。
try {
int millisec = 5000;
System.out.println(new Date());
System.out.println("We wait " + millisec + " milliseconds");
Thread.sleep(millisec);
System.out.println(new Date());
} catch (Exception e) {
e.printStackTrace();
}
输出 :
2013 年 8 月 22 日星期四 20:01:42 CEST
我们等待 5000 毫秒2013 年
8 月 22 日星期四 20:01:47 CEST
一切都好。
但是当我把这段代码放在一个线程中时,没有睡眠。此代码的示例:
try {
Thread aThread = new Thread(new Runnable() {
@Override
public void run() {
try {
int millisec = 5000;
System.out.println(new Date());
System.out.println("We wait " + millisec + " milliseconds");
Thread.sleep(millisec);
System.out.println(new Date());
} catch (Exception e) {
e.printStackTrace();
}
}
});
aThread.start();
} catch (Exception e) {
e.printStackTrace();
}
输出 :
2013 年 8 月 22 日星期四 20:07:30 CEST
我们等待 5000 毫秒
......没有别的,线程被终止。
我不明白为什么。请问,有什么想法吗?
编辑:我使用 Eclipse 和 JUnit 进行测试。