termination of program on main thread exit?

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 class Runtime 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 the run method or
    by throwing an exception that
    propagates beyond the run method.

If you don’t want the runtime to wait for a thread, call the setDaemon method.

Leave a Comment