I have two threads: the main thread and a thread generated from the main thread.
When the main thread exits, will the whole program terminate?
Java programs terminate when all non-daemon threads finish.
The documentation states:
When a Java Virtual Machine starts up,
there is usually a single non-daemon
thread (which typically calls the
method named main of some designated
class). The Java Virtual Machine
continues to execute threads until
either of the following occurs:
exitmethod of class
Runtimehas been called and the
security manager has permitted the
exit operation to take place.
- All threads that are not daemon threads have died, either by returning
from the call to the
by throwing an exception that
propagates beyond the
If you don’t want the runtime to wait for a thread, call the