守护线程和正常(用户线程)非常相似,但是却有一点非常不同。当没有用户线程后,JVM才结束进程运行。也就是说,如果你有1个用户线程和1000个守护线程在运行,JVM就会在一个用户线程结束后结束进程。当存在运行的用户线程时,使用守护线程在后台处理业务逻辑是非常好的,但是对于守护线程所带来的修改需要额外的注意,因为当守护线程结束的时候并不会给JVM发送信号。
附上一个流程图,希望能帮助理解:
守护线程和正常(用户线程)非常相似,但是却有一点非常不同。当没有用户线程后,JVM才结束进程运行。也就是说,如果你有1个用户线程和1000个守护线程在运行,JVM就会在一个用户线程结束后结束进程。当存在运行的用户线程时,使用守护线程在后台处理业务逻辑是非常好的,但是对于守护线程所带来的修改需要额外的注意,因为当守护线程结束的时候并不会给JVM发送信号。
附上一个流程图,希望能帮助理解: