首页 > 开发 > JAVA > 正文

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

2017-09-07 08:36:36  来源:网友分享

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

解决方案

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

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

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