[백엔드 기술면접] 프로세스 (Process)와 스레드 (Thread)의 차이점은 무엇인가요?
서론
프로세스(Process)와 스레드(Thread)의 차이점은 무엇인지 알아 봅시다.
본론
프로세스와 스레드는 모두 운영체제에서 실행되는 실행 단위 입니다. 그러나 다음과 같은 차이점이 있습니다.
-
프로세스(Process)는 실행 중인 프로그램을 나타내는 운영체제의 개념이며, 스레드는(Thread)는 프로세스 내에서 실행되는 실행 단위입니다.
-
각각의 프로세스는 독립된 메모리 공간을 가지고 있으며, 한 프로세스는 다른 프로세스의 메모리에 직접 접근할 수 없습니다. 반면, 스레드는 같은 프로세스 내에서 실행되므로, 각각의 스레드는 해당 프로세스의 메모리 공간을 공유합니다.
-
프로세스는 운영체제로부터 자원을 할당받아 실행되며, 스레드는 프로세스의 자원을 공유하여 실행됩니다. 따라서 스레드의 생성, 제거, 전환 등의 작업은 프로세스의 오버헤드가 적습니다.
-
프로세스 간에는 서로 독립적으로 실행되므로, 한 프로세스가 다운되더라도 다른 프로세스는 영향을 받지 않습니다. 반면, 스레드는 프로세스의 메모리 공간을 공유하기 때문에, 한 스레드의 오류가 전체 프로세스를 중단시킬 수 있습니다.
결론
프로세스는 실행 중인 프로그램을 나타내는 개념이며, 독립적인 메모리 공간을 가지고 있으며, 서로 다른 프로세스는 직접적으로 메모리를 공유하지 않습니다.
스레드는 프로세스 내에서 실행되는 실행 단위로, 같은 프로세스 내에서 실행되므로, 해당 프로세스의 메모리 공간을 공유합니다.
이러한 차이점 때문에 스레드는 프로세스에 비해 가볍고 빠르게 생성, 제거, 전환할 수 있으며 다양한 용도로 활용됩니다.
참고자료 및 블로그
- chat GPT