Java Daemon Thread vs User Thread Example

preview_player
Показать описание
What is a Java Daemon Thread?
A daemon thread is a type of java thread that does not prevent the JVM from exiting when the program finishes. The Java Virtual Machine exits only when all threads running are all daemon threads (I.e. No Java User Threads exist).

The initial java main method is a user thread and a thread will automatically inherit the daemon status of its parent (Creator) thread. Any threads created from the main thread will also be user threads unless you specifically call the thread#setDaemon(true) method.

For example:
T1 is a daemon thread, when T1 creates and starts T2, T2 will also be a daemon thread.

Also, worth mentioning

When the JVM terminates, daemon threads:
- Finally blocks are not executed
- Stacks are not unwound – JVM exists.

To make a daemon thread, the setDaemon(true) must be invoked BEFORE the thread is started.

Garbage collector is an example of a daemon thread.
I.e. As you are aware, the garbage collector thread will not prevent the JVM from exiting when all your user threads die.

I hope you enjoyed this quick Java tip!!

Sub & See you next time!!
Philip

Рекомендации по теме
Комментарии
Автор

Thanks buddy :)
Greetings from Poland :D

ukaszkiepas
join shbcf.ru