当非守护线程执行结束的时候,为什么守护线程还会再接着执行一会儿再结束?

抽刀且断水 2017-06-17 04:18:55

如图:将三个线程都标记为守护线程。
当主线程执行结束后,可以看到线程3还执行了一会儿。
问题:不是说守护线程会随着非守护线程的结束而结束吗?为什么非守护线程执行结束了,守护线程还会执行一会儿?
多次运行程序还会发现守护线程有时会再执行一会儿,有时就不执行了
...全文
659 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Surrin1999 2018-09-14
  • 打赏
  • 举报
回复
举个例子 就像你被人砍了一刀 你也不见得会立刻就say goodbye啊
qq_39936465 2018-09-14
  • 打赏
  • 举报
回复
单一线程当然是主程序语句结束,主程序结束,多线程是并行状态,主线程语句执行结束,其他线程执行时间可能大于主线程执行时间,所以主线程并没有关闭,等其他线程结束的收尾工作。
wildyy 2018-09-14
  • 打赏
  • 举报
回复
打印"主线程"后不意味着主线程就结束了,线程还会进行一些收尾工作
WinterIsComming 2018-09-13
  • 打赏
  • 举报
回复
子线程执行加sleep
soton_dolphin 2017-06-21
  • 打赏
  • 举报
回复
线程是有惯性的
冬末晴初 2017-06-21
  • 打赏
  • 举报
回复
因为有延迟啊,结束线程需要时间
zy_arhahaha 2017-06-17
  • 打赏
  • 举报
回复
http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧