Thread 退出条件
- run 方法执行完毕
- run 方法抛异常
JVM 退出条件
- 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.
- 当没有用户线程执行的时候
- 在任何线程调用
System.exit
会导致退出