processthreadaddress-space

프로세스와 스레드의 차이를 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

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

스레드마다 따로 가지는 것과 공유하는 것은 무엇인가요?

부가 설명

처음에는 둘 다 CPU에서 실행되는 단위라 비슷해 보입니다. 차이는 문제가 터지는 지점에서 선명해집니다. 한 프로세스가 죽어도 다른 프로세스의 메모리는 보통 직접 망가지지 않지만, 같은 프로세스 안의 스레드 하나가 공유 heap을 잘못 바꾸면 다른 스레드도 바로 영향을 받습니다.

차이는 메모리 공유와 격리, 생성 비용, 통신 방식에서 드러납니다. 프로세스 간 통신은 IPC가 필요하고, 스레드 간 통신은 공유 메모리로 쉽지만 lock 같은 동기화가 따라옵니다. 결국 프로세스는 격리, 스레드는 가벼운 병행 실행에 가깝습니다.

한 줄 정리

프로세스는 격리된 실행 단위이고, 스레드는 같은 프로세스 자원을 공유하는 실행 흐름입니다.