본문 바로가기
카테고리 없음

프로세스 (Process)와 스레드 (Thread)의 차이점

by Node.js 주니어 개발자 귤 2023. 4. 14.

프로세스는 운영체제에서 실행중인 프로그램으로 독립적인 메모리 공간 , 실행 흐름, 자원 등을 가지고 있다.

하나의 프로그램이 실행될 때 운영체제는 해당 프로그램을 위한 프로세스를 실행하고, 이 프로세스 안에서 해당 프로그램의 모든 코드, 데이터, 자원 등을 관리한다.

각각의 프로세스는 서로 독립적으로 실행되며, 다른 프로세스에 영향을 끼치지 않는다.

 

스레드는 하나의 프로세스 내에서 실행되는 작업의 단위이다.

하나의 프로세스 내에서 여러개의 스레드가 실행될 수 있다

각각의 스레드는 프로세스의 자원을 공유하며, 프로세스 내에서 독립적인 실행 흐름을 가지고 있다

이 때문에 스레드는 프로세스보다 가볍고 빠르게 실행될 수 있지만 스레드는 프로세스의 메모리 공간을 공유하기 때문에

다른 스레드가 공유하는 자원에 대한 접근이 충돌하거나 동기화 문제가 발생할 수 있다.

 

따라서 프로세스와 스레드는 각각 독립적인 실행 단위와 공유하는 실행 단위로 구분된다.

프로세스는 각각 독립적인 메모리 공간을 가지고 실행되며, 스레드는 동일한 프로세스 내에서 실행되며 메모리 공간을 공유한다.