memoryconcurrency

process와 thread의 차이를 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

process와 thread는 memory를 어떻게 나눠 쓰나요?

부가 설명

브라우저를 떠올리면 이해하기 쉽습니다. 탭이나 renderer process를 분리하면 한 페이지 문제가 전체 브라우저를 덜 흔들게 만들 수 있습니다. 반면 같은 process 안의 여러 thread는 rendering, network, background 작업처럼 역할을 나눠 동시에 진행할 수 있습니다.

단순히 “process는 program, thread는 function”처럼 말하면 부족합니다. 핵심은 resource 소유와 memory 공유 범위입니다.

process 간 통신은 IPC가 필요하고 비용이 상대적으로 큽니다. thread 간 통신은 같은 address space를 공유하므로 더 쉽지만, 동시에 같은 데이터를 바꾸면 문제가 생길 수 있습니다.

Context switching 비용도 차이가 납니다. process context switching은 address space 전환까지 포함될 수 있어 thread보다 무거운 경우가 많습니다.

한 줄 정리

process는 독립적인 memory를 가진 실행 단위이고, thread는 process 안에서 memory를 공유하며 실행되는 흐름입니다.