用户线程与守护线程
用户线程
当所有用户线程都结束时,JVM 会退出。
特点
- 生命周期:只要有一个用户线程在执行,JVM 就不会退出
- 重要性:用户线程通常用于执行应用程序的主要任务,例如处理业务逻辑和执行计算
- 关闭 JVM:JVM 只有在所有用户线程都结束后才会退出,即使还有守护线程在运行
使用场景
适用于需要执行重要任务且不能中途被终止的线程。例如:执行用户请求的线程、执行主要业务逻辑的线程
守护线程
守护线程是为其他线程提供服务和支持的线程。换句话说,如果用户线程不存在了,那么守护线程也就失去了存在的意义,因此 JVM 的退出只需要考虑是否还有用户线程在运行,而不需要考虑守护线程。
使用场景
JVM 的垃圾回收线程、日志记录线程、监控和统计线程等。