본문 바로가기
👨‍🏫일문일답

[20210917] 프로세스, 스레드 차이(+ 멀티 프로세싱, 멀티 스레딩)

by 캔 2021. 9. 18.

프로세스가 스레드보다 큰 개념이라고 할 수 있다. 프로세스(process)는 애플리케이션 그 자체이며, 컴퓨터에서 실행 중인 프로그램을 가리킨다. 여기서 프로그램은 어떤 작업을 위해 실행할 수 있는 파일을 말하며, 프로그램은 정적인 개념, 프로세스는 동적인 개념이라고 보면 된다. 스레드(thread)는 프로세스의 하부 작업 단위로서, 프로세스 내부에서 실행되는 일련의 실행 흐름이다.

 

이 프로세스와 스레드의 개념은 결국 멀티 프로세싱과 멀티 스레딩과 관련이 있다. 멀티 프로세싱은 하나의 애플리케이션을 여러 개의 프로세스로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다. 멀티 스레딩은 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다.

 

멀티 프로세싱보다 멀티 스레딩이 선호되는데, 그 이유는 여러 개의 프로그램을 통해 하나의 작업을 처리하는 것보다 하나의 프로그램에서 여러 개의 스레드로 하나의 태스크를 처리하는 것이 효율적이기 때문이다. 멀티 스레딩은 프로세스 생성을 위한 콜(시스템 콜), 프로세스 간 통신(IPC) 등이 불필요하다. 또한 스레드 간의 메모리도 공유되기 때문에 멀티 프로세싱보다는 멀티 스레딩이 많이 사용된다.