인프런 커뮤니티 질문&답변
taskExcecutor 지정해서 muti 쓰레드로 실행시 어플리케이션 종료되지 않는 이슈
작성
·
357
0
안녕하세요.
taskExcecutor 지정해서 muti 쓰레드로 실행시 어플리케이션 종료되지 않는데 이건 taskExecutor 내부적으로 뭔가가 떠있어서 그런건가요?
taskExcecutor 지정 안했을 때는 정상 종료됩니다.
퀴즈
스프링 배치에서 멀티스레딩을 적용하는 주된 목적은 무엇일까요?
배치 작업의 디버깅을 쉽게 만들기 위함
배치 작업의 처리량을 늘리고 성능을 향상시키기 위함
배치 작업 설정 파일의 복잡성을 줄이기 위함
데이터베이스 연결 수를 줄이기 위함
답변 1
1
정수원
지식공유자
네
taskexecutor 는 스레드를 생성하고 관리하는 풀 개념의 클래스입니다.
그렇기 때문에 스레드가 작업을 다 완료했다고 하더라도 종료되는 것이 아니라 다시 풀에 반환되어 재 사용 할 수 있도록 계속 존재하고 있을 수 있습니다.
풀 개념의 taskexecutor 가 아닌 스레드를 생성하고 실행 후 스레드가 모두 종료가 된다면 어플리케이션도 종료가 될 것입니다.
먼저 디버깅을 통해 taskexecutor 의 어떤 종류인지 확인 해 보시고 스레드가 모두 작업을 종료한 이후에도 taskexecutor 안에 스레드가 계속 존재하는지를 확인해 보시기 바랍니다.





