본문 바로가기

Back-end/Basic

프로세스와 스레드의 차이

프로세스는 실행중인 프로그램을 의미합니다.

스레드는 실행 제어만 분리한 것을 의미합니다.

 

프로세스운영체제로부터 자원을 할당받지만,

스레드프로세스로부터 자원을 할당받고, 프로세스의 코드/데이터/힙영역을 공유하기 때문에 좀 더 효율적으로 통신할 수 있습니다.

 

또한 컨텍스트 스위칭캐시 메모리를 비우지 않아도 되는 스레드쪽이 빠릅니다.

그리고, 스레드는 자원 공유로 인해 문제가 발생할 수 있으니 이를 염두에 둔 프로그래밍을 해야합니다.

 

한 프로세스 안에 여러 개의 스레드가 생성될 수 있습니다.