首頁  >  問答  >  主體

java - 主執行緒在子執行緒未結束情況下退出

今天在執行一段程式時出現了個bug,就是主函數執行的一個子執行緒任務還沒結束的時候就推出執行了。但在主程式中加入sleep()之後子執行緒會正常執行後推出(但是休眠時間過短也不行)。 debug子執行緒主要是卡在執行資料庫操作那一行程式碼(可能是應為比較耗時吧,主執行緒來不及等你結束。。。)。


#
typechotypecho2707 天前1091

全部回覆(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
  • 取消回覆