daemon: d(isk) a(nd) e(xecution) mon(itor) or from de(vice) mon(itor)
Definition of Daemon (Computing):
A background process that handles requests for services such as print spooling and file transfers, and is dormant when not required.
—— Source: English by Oxford Dictionaries
What is Daemon thread in Java?
- Daemon threads can shut down any time in between their flow, Non-Daemon i.e. user thread executes completely.
- Daemon threads are threads that run intermittently in the background as long as other non-daemon threads are running.
- When all of the non-daemon threads complete, daemon threads terminates automatically.
- Daemon threads are service providers for user threads running in the same process.
- The JVM does not care about daemon threads to complete when in Running state, not even finally block also let execute. JVM do give preference to non-daemon threads that is created by us.
- Daemon threads acts as services in Windows.
- The JVM stops the daemon threads when all user threads (in contrast to the daemon threads) are terminated. Hence daemon threads can be used to implement, for example, a monitoring functionality as the thread is stopped by the JVM as soon as all user threads have stopped.