потоки Java-демона
Привет всем, перестанет ли работать поток демона, когда завершающий поток завершится? Или поток демонов остановится, когда закончится основной поток?
Я протестировал этот пример на JRE6, и результат былdaemon thread stopped working when the enclosing it thread finished
, Обратите внимание, что в документации по Java сказано, что потоки демона уничтожаются, когда не осталось других потоков приложения. И не сказано, что потоки демона уничтожаются, когда остается родительский поток, не являющийся демоном.
Пожалуйста, дайте мне ответы. Пожалуйста, пришлите мне любой материал по этому вопросу. Извините за мой английский.
public class Main {
public static void main(String[] args) {
Thread simple = new Thread(new SimpleTask());
simple.start();
}
}
class SimpleTask implements Runnable {
public void run() {
try {
Thread daemon = new Thread(new DaemonTask());
daemon.setDaemon(true);
daemon.start();
Thread.sleep(5000);
} catch (InterruptedException e) {}
};
}
class DaemonTask implements Runnable {
public void run() {
int i = 0;
while (true) {
try {
System.out.println("a" + (i++));
Thread.sleep(500);
} catch (InterruptedException e) {}
}
}
}