인프런 커뮤니티 질문&답변

김나다님의 프로필 이미지
김나다

작성한 질문수

스프링 배치

Multi-threaded Step

멀티 스레드 적용 방식 차이가 있나요?

작성

·

451

0

이전 강의:
AsyncItemProcessor, AsyncItemWriter 구현체 적용하는 방식

현재 강의:
TaskExecutor 구현체 적용하는 방식

 

요 두가지 방식에서 기능+성능 차이가 있을까요?
단순히 적용 방식 차이 뿐인지 궁금합니다

 

 

 

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

기능적으로는 AsyncItemProcessor, AsyncItemWriter 같은 경우 실제 비동기 실행은

AsyncItemProcessor 에서만 이루어 집니다.

즉 ItemReader 와 ItemWriter 는 동기 실행입니다.

하지만 Multi-threaded Step 은 ItemReader, ItemProcessor, ItemWriter 모든 클래스가 비동기 실행으로 배치 처리가 진행됩니다.

특히 ItemReader 같은 경우 스레드에 안전하도록 동기화 처리가 필요합니다.

성능차이는 단정적으로 비교할 수 있는 것은 아닙니다.

아무래도 읽을 데이터가 많거나 쓰기 작업까지 포함되는 배치일 경우 Multi-threaded Step 방식이 좀 더 성능적으로 유리하지 않을까 합니다.

김나다님의 프로필 이미지
김나다

작성한 질문수

질문하기