프로세스가 스레드보다 큰 개념이라고 할 수 있다. 프로세스(process)는 애플리케이션 그 자체이며, 컴퓨터에서 실행 중인 프로그램을 가리킨다. 여기서 프로그램은 어떤 작업을 위해 실행할 수 있는 파일을 말하며, 프로그램은 정적인 개념, 프로세스는 동적인 개념이라고 보면 된다. 스레드(thread)는 프로세스의 하부 작업 단위로서, 프로세스 내부에서 실행되는 일련의 실행 흐름이다.
이 프로세스와 스레드의 개념은 결국 멀티 프로세싱과 멀티 스레딩과 관련이 있다. 멀티 프로세싱은 하나의 애플리케이션을 여러 개의 프로세스로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다. 멀티 스레딩은 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 태스크를 처리할 수 있도록 하는 것이다.
멀티 프로세싱보다 멀티 스레딩이 선호되는데, 그 이유는 여러 개의 프로그램을 통해 하나의 작업을 처리하는 것보다 하나의 프로그램에서 여러 개의 스레드로 하나의 태스크를 처리하는 것이 효율적이기 때문이다. 멀티 스레딩은 프로세스 생성을 위한 콜(시스템 콜), 프로세스 간 통신(IPC) 등이 불필요하다. 또한 스레드 간의 메모리도 공유되기 때문에 멀티 프로세싱보다는 멀티 스레딩이 많이 사용된다.
'👨🏫일문일답' 카테고리의 다른 글
[20211019] REST(REpresentative State Trasfer) API (0) | 2021.10.19 |
---|---|
[20210924] 절차적 프로그래밍과 객체 지향 프로그래밍 (0) | 2021.09.24 |
[20210916] 정렬 알고리즘 (0) | 2021.09.16 |
[20210904] 인터페이스와 추상 클래스의 차이 (0) | 2021.09.14 |
[20210906] 검색 알고리즘 (0) | 2021.09.06 |