
서로 독립된 여러개의 프로세스를 이용하여 동시에 처리하게 만드는 프로그래밍 기법이다.
순차적인 직렬프로그램을 분할하고 분할된 단위를 동시에 병렬로 수행함으로써 성능을 향상시키는 프로그래밍 기술이며, 이러한 전반적인 과정을 병렬화라고 한다.
병렬 알고리즘을 기반으로 상호 의존적인 작업 및 변환 시스템에 대한 특정 작업을 도입 할 수 있음.
하나의 프로그램을 하나의 프로세스가 아닌 여러개의 프로세스를 이용하여 동시에 처리하게 만드는 프로그래밍 기법을 말한다.
이렇게 개발하는 이유는? 여러 개의 프로세스를 동시에 활용하여 성능을 향상시키기 위함이다.
기본적으로 하나의 프로세스에서 N개의 쓰레드를 실행하는 멀티쓰레드 와는 다른 개념이다.
- 순차처리
- 문제가 일련의 개방 명령어로 나누어져 있다.
- 명령어들은 순차적으로 하나씩 단일 프로세서에서 실행이 된다.- 병렬처리
- 문제가 동시에 해결할 수 있는 독립적인 부분들로 나눌 수 있다.
- 부분화된 작업들은 서로 다른 프로세서에서 동시에 실행 된다.
- 동시에 작업하는 과정은 항상제어와 조정의 알고리즘이 필요하다
멀티 쓰레드 프로그래밍은 IO 관련 처리에서 비약적으로 성능을 향상시켜주는 데 비하여 멀티 프로세스 프로그래밍, 병렬 처리는 CPU 관련 처리에서 비약적으로 성능을 향상시킬 수 있다.
스프링 컨테이너 생성 -> 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료