Basically this is all there is to know about daemon threads:
1. You can have two types of threads inside a
Java program, user threads and daemon threads.
2. A Java program terminates when all USER threads have died, regardless of the existence of any living daemon threads.
3. You can change the status of a
thread by using the setDaemon method as long as the thread has not been started. If you try to change a started thread, you'll get an IllegalThreadStateException.
Relevant methods:
final void setDaemon(boolean flag)
If flag is true, the thread will become a daemon thread. Otherwise the thread becomes a user thread. (BTW, threads are created as user threads initially)
final boolean isDaemon()
Returns true if the thread is a daemon thread; false if it is a user thread.
Hope this helps.