本帖最后由 陈冲 于 2012-8-3 17:04 编辑
对Java程序来说,只要还有一个前台线程在运行,这个进程就不会结束;
而如果一个进程中只有后台线程在运行,这个进程就会结束。
如果某个线程在启动(调用start方法)之前调用了setDaemon(true)方法,
这个线程就变成了后台线程。- public class setDaemon {
- public static void main(String[] args) {
- ThreadTest t = new ThreadTest();
- Thread tt = new Thread(t);
- tt.setDaemon(true);
- tt.start();
- /*try {//为了保证有显示结果,在此处使用sleep()方法
- Thread.sleep(10);
- } catch (Exception e) {}*/
- }
- }
- class ThreadTest implements Runnable {
- public void run() {
- int count=0;
- while (true) {//这是个无限循环的方法
- System.out.println(Thread.currentThread().getName() + " is running"+count);
- count++;
-
- }
- }
- }
复制代码 从程序和运行结果图中可以看出:虽然创建了一个无限循环的线程,但因为它是后台线程(调用了setDaemon(true)方法),
所以整个进程在主线程结束时就随之终止运行了,而不是无限执行。
如果运行没有结果,那纯粹是计算机的配置太好,main线程结束得太快……可以在tt.start()语句后添加sleep()语句,用以延迟主函数的结束时间。
|
|