multi-thread step

- 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 [진형아빠이야기]

+ Recent posts