멀티 프로세스, 멀티 스레드 (Multi Process, Multi Thread)

yeoro·2021년 8월 10일
0
post-thumbnail

📚 멀티 스레드 (Multi Thread)

하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다.

각 스레드는 프로세스 내에서 Stack만 따로 할당받고 같은 프로세스에 속한 다른 스레드와 Code, Data, Heap 등 운영체제 자원을 공유한다.

Stack을 독립적으로 할당하는 이유?

Stack은 함수 호출시 전달되는 인자, 되돌아갈 주소값 및 함수에 선언하는 변수 등을 저장하기 위해 사용하는 공간이다. 이러한 stack을 스레드끼리 공유한다면, 스레드가 섞여있는 순서대로 호출되기 때문에 복잡해진다.
따라서 원활한 실행을 위해 스레드별로 stack을 따로 할당받아 독립적으로 실행하게 한다.

한 스레드가 프로세스 자원을 변경하면, 이웃 스레드(Sibling Thread)도 변경 결과를 즉시 볼 수 있다.

0개의 댓글