- thread pool executor
- simpleAsyncexecutor - thread pool관리의 어려움
step 실행 시 chunk 단위로 각 개별 thread에서 실행
parallel step
- step간의 병렬 처리
- 싱글 프로세스
remote-chunk
- 스텝을 다수의 프로세스로 실행
- master / slave로 나누어서 slave에서 처리
partitioning
- step을 파티션 단위로 분할
프로세스 vs 쓰레드
프로세스 : 운영체제로 부터 자원을 할당 받는 작업의 단위
주소공간, 메모리 등 자원 할당
쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위
프로세스 내의 주소 공간 자원들을 같은 프로세스 내에 공유
https://brunch.co.kr/@kd4/3
스레드의 장점을 정리하면 다음과 같다.
- 시스템의 throughput이 향상된다.
- 시스템의 자원 소모가 줄어든다
- 프로그램의 응답 시간이 단축된다.
- 프로세스 간 통신 방법에 비해 스레드 간의 통신 방법이 훨씬 간단하다.
출처: http://ralf79.tistory.com/34 [진형아빠이야기]
기본적으로 하나의 프로세스가 생성되면 하나의 스레드가 같이 생성된다.이를 메인 스레드라고 부르며, 스레드를 추가로 생성하지 않는 한모든 프로그램 코드는 메인 스레드에서 실행된다.또한 프로세스는 여러개의 스레드를 가질 수 있으며 이를 멀티 스레드라고 한다.
http://ralf79.tistory.com/34
스레드는 장점만 갖고 있는 것이 아니라 다음과 같은 단점도 지니고 있다.
- 여러 개의 스레드를 이용하는 프로그램을 작성하는 경우에는 주의 깊게 설계해야 한다. 미묘한 시간 차나 잘못된 변수를 공유함으로써 오류가 발생할수 있다.
- 프로그램 디버깅이 어렵다.
- 단일 프로세서 시스템에서는 효과를 기대하기 어렵다.
출처: http://ralf79.tistory.com/34 [진형아빠이야기]