Thread-Frage
-
Hi,
mal so ne Frage: Wo ist jetzt genau der Unterschied zwischen User-Threads und Daemon-Threads.
Ich sehe oft in Tutorials, dass vor dem start () ein setDaemon (true) und mal nicht. Es wird immer nur gesagt: "Das muss so sein" aber nie das warum.
Danke euch im voraus!
-
daemon threads werden beendet und abgeräumt, sobald der letzte user thread (das ist der main thread und alle threads, die nicht als daemon gekennzeichnet wurden) beendet ist. dabei geht java recht brutal zuwege und haut dem daemon einfach einen auf die nuss
mal nen beispiel:
public static void main(String[] args) { Thread t = new Thread(){ public void run(){ while(true); } }; t.start() } // main thread tot // aber thread t rennt bis in alle ewigkeit weiter, bis die vm gekillt wird public static void main(String[] args) { Thread t = new Thread(){ public void run(){ while(true); } }; t.setDaemon( true ); t.start() } // main thread tot // t wird abgeschossen