Daemon threads are generally used as "background" or "support" threads. An application terminates when there are no more non-daemon threads executing. At that time, if there are still daemon threads running, they are automatically terminted.
The garbage collection process would be an excellent use for a daemon
thread.