오늘 프로그램을 실행할 때 버그가 발생했습니다. 즉, 메인 함수에 의해 실행된 하위 스레드 작업이 완료되기 전에 시작되었습니다. 그러나 메인 프로그램에 sleep()을 추가하면 하위 스레드가 정상적으로 실행되어 시작됩니다(단, 절전 시간이 너무 짧으면 작동하지 않습니다). 디버그 하위 스레드는 주로 데이터베이스 작업을 수행하는 코드 줄에 걸려 있습니다(아마도 시간이 더 많이 걸리고 메인 스레드가 완료될 때까지 기다릴 시간이 없기 때문일 수 있습니다...).
高洛峰2017-06-12 09:23:01
하위 스레드가 설정되어 있는지 확인하세요. setDaemon(true)
Jvm은 다음 상황에서 종료됩니다.
실행 중인 모든 스레드가 데몬 스레드인 경우
또는 데몬이 아닌 스레드가 실행되고 있지 않은 경우