简单的守护程序线程不输出msg

时间:2014-01-13 00:17:54

标签: java multithreading daemon

我正在学习“Think in Java”中的守护程序线程内容,但是,当我尝试运行守护程序线程并期待一些输出时,它没有给我任何东西......我的编程IDE是Eclipse,操作系统是ubuntu13。 04 ...请让我知道发生了什么。如果您注释掉“t.setDaemon(true);”

,以下代码将输出msg
public class Practice implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            Thread.sleep(1000);
            System.out.println(Thread.currentThread()+" "+this);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("Daemon is working");
    }

    public static void main(String[] args){
        Thread t = new Thread(new Practice());
        t.setDaemon(true);
        t.start();

    }

}

1 个答案:

答案 0 :(得分:1)

它根本没有时间打印消息,因为主要退出太快,尝试暂停一秒钟,你会看到它

Thread t = new Thread(new Practice());
t.setDaemon(true);
t.start();
Thread.sleep(1000); <--