Как создать потоки демона?

может ли программист java создавать потоки демонов вручную? Как это?

4 ответов


java.ленг.Нитка.setDaemon (boolean)

обратите внимание, что если не задано явно, это свойство "наследуется" от потока, который создает новый поток.


вы можете пометить поток как демон, используя предоставленный метод setDaemon. Согласно документации:

помечает этот поток как поток демона или поток пользователя. Виртуальная машина Java завершает работу, когда единственными запущенными потоками являются все потоки демона.

этот метод должен быть вызван до запуска потока.

этот метод сначала вызывает метод checkAccess этого потока без аргументов. Это может привести к бросанию SecurityException (в текущем потоке).

вот пример:

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

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());
  }
}

да

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