반응형

프로세스와 스레드의 차이 

 

프로세스 : 실행중인 프로그램

스레드 : 프로세스 안 실행 단위 

 

예를 들어 유튜브를 보고 있다고 생각해보자 

 

유튜브를 보면 

재생중인 유튜브 아래의 좋아요 버튼 이 하나하나가 스레드 이며

이것이 모이면 프로세스가 된다.

 

프로세스가 메모리에 올라 갈 떄 운영체제로 부터 시스템 자원을 할당받는다. 

이 때 운영체제는 프로세스마다 각각 독립된 메모리 영역 (코드/데이터/스택/힙) 형식으로 할당해 준다.

ㅂ각각 독립된 메모리 영역을 할당해 주기 때문에 프로세스는 다른 프로세스의 변수나 자료에 접근 할 수 없다. 

 

 

 

이와 다르게 스레드는 메모리를 서로 공유할 수 있다고 한다. 이에 대해 더 자세히 설명하자면 프로세스가 할당받은 메모리 영역 내에서 스택형식으로 할당된 메모리 영역은 따로 할당 받고 나머지 코드 /데이터/힙 형식으로 할당된 메모리를 공유한다. 따라서 각가의 스레드는 별도의 스택을 가지고 있지만 힙 메모리는 서로 읽고 쓸 수 있게 된다. 

 

 

 

 

참조 : https://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

프로세스와 스레드의 차이

프로세스와 스레드의 차이는 프로세스와 스레드, 그리고 프로그램이 작동하는 방식에 대해서 잘 이해하고 있는지 확인하기 위해 기술면접에서 단골 질문 사항으로 나온다.

velog.io

 

반응형

+ Recent posts