Discuss / Java / 守护线程t线程内 更改为 Thread.sleep(1000)后 再 多次运行 可能会出现以下打印结果

守护线程t线程内 更改为 Thread.sleep(1000)后 再 多次运行 可能会出现以下打印结果

Topic source
main: wait 3 sec...
Thread-1: running...
Thread-1: running...
Thread-1: running...
main: end.
Thread-1: running...

这里非守护线程main线程打印了end 后结束,但是JVM没有马上退出,守护线程还打印了一个Thread-1: running...才结束。
“在JVM中,所有非守护线程都执行完毕后,无论有没有守护线程,虚拟机都会自动退出。”是否违背了这句话呢,还是其他的原因

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

那你说这叫不叫虚拟机自动退出?

懂了,确实是自动退出,虽然不是马上自动退出?

Frank8y

#4 Created at ... [Delete] [Delete and Lock User]

老哥的态度很严谨!


  • 1

Reply