How do I create daemon threads?

2019-04-08 00:00发布

问题:

Can a java programmer can create daemon threads manually? How is it?

回答1:

java.lang.Thread.setDaemon(boolean)

Note that if not set explicitly, this property is "inherited" from the Thread that creates a new Thread.



回答2:

You can mark a thread as a daemon using the setDaemon method provided. According to the java doc:

Marks this thread as either a daemon thread or a user thread. The Java Virtual Machine exits when the only threads running are all daemon threads.

This method must be called before the thread is started.

This method first calls the checkAccess method of this thread with no arguments. This may result in throwing a SecurityException (in the current thread).

Here an example:

Thread someThread = new Thread(new Runnable() {
    @Override
    public void run() {
        runSomething();
    }
});
someThread.setDaemon(true);
someThread.start();


回答3:

class mythread1 implements Runnable {
  public void run() {
    System.out.println("hii i have set thread as daemon");
  }


  public static void main(String []arg) {
    mythread1 th=new mythread1();
    Thread t1 = new Thread(th);
    t1.setDaemon(true);
    t1.start();
    System.out.println(t1.isDaemon());
  }
}


回答4:

Yes you can

Thread thread = new Thread(  
  new Runnable(){  
    public void run(){  
      while (true)
        wait_for_action();
    }  
  }  
);  
thread.start(); 


标签: java daemon