No.
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:
- The
exit
method of classRuntime
has 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 therun
method or
by throwing an exception that
propagates beyond therun
method.
If you don’t want the runtime to wait for a thread, call the setDaemon
method.