搜索

首页  >  问答  >  正文

java - 主线程在子线程未结束情况下退出

今天在运行一段程序时出现了个bug,就是主函数执行的一个子线程任务还没结束的时候就推出执行了。但是在主程序中加入sleep()之后子线程会正常执行后推出(但是休眠时间过短也不行)。debug子线程主要是卡在执行数据库操作那一行代码(可能是应为比较耗时吧,主线程来不及等你结束。。。)。


typechotypecho2718 天前1100

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-06-12 09:23:01

    检查你的子线程是否设置了setDaemon(true),Jvm会在以下情形时退出:

    1. 所有运行线程都是daemon线程时

    2. 或没有任何非daemon线程正在运行时

    回复
    0
  • 巴扎黑

    巴扎黑2017-06-12 09:23:01

    线程之间没有父子关系。如果需要等待,可以考虑 join() 方法。 参考:
    /a/11...

    回复
    0
  • 取消回复