• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Multi-threaded과 Partitioning의 차이가 있나요?

23.02.14 23:57 작성 조회수 736

0

Multi-threaded에다가 각 스레드가 담당할 데이터를 구분시켜주는 기능이 포함된게 Partitioning인가요??

단지 차이점이 이렇게만 느껴집니다

답변 1

답변을 작성해보세요.

2

Multi-threaded 가 하나의 스텝안에서 청크 프로세스를 여러 스레드가 동시적으로 처리하는 개념이라면 Partitioning 은 각 스레드별로 스텝자체가 할당되어 동시적으로 처리되는 개념입니다.

그 외에도 내부적인 처리 동작은 차이가 나긴 합니다.

청크 프로세스를 멀티스레드로 처리할 것인지 아니면 스텝 자체를 멀티스레드로 처리할 것인지 기준을 정하면 되는데 Multi-threaded 에 의한 청크프로세스는 여러 스레드가 ItemReader 객체를 공유해서 사용하기 때문에 경합이 발생하는 대신에 Partitioning 은 처음부터 스레드별로 스텝이 독립적으로 할당되고 데이터가 중복되지 않도록 읽어오기 때문에 경합이 발생하지 않는다는 것도 차이점이라 할 수 있습니다.

Multi-threaded 는 동시적 접근 즉 concurrency 개념이라면 Partitioning 는 병렬접근 즉 parallel 개념으로 이해하시면 될 것 같습니다.