| 프로세스 | 스레드 | |
|---|---|---|
| 의미 | 실행중인 프로그램의 인스턴스 | 프로세스 내에 실행되는 흐름 단위 |
| 메모리 | 독립적 | 해당 프로세스의 메모리 공유(code, data, heap) stack영역은 독릭접 |
| 영향 | 프로세스 이슈가 있을경우 독립적인 관계로 다른 프로세스 영향 없음 | 스레드 문제 시 해당 부모 프로세스가 종료됨 |
| 공유 | 프로세스 간 공유하는 영역이 없음 | 동일한 프로세스 내 스레드 끼리는 자원을 공유 |
작업의 단위자원을 이용하는 실행의 흐름교체 과정을 Context Switching오버헤드라 얘기함
즉, 너무 빈번히 이뤄지면 성능이 급격히 떨어짐동일한 프로세스의 메모리 영역을 공유 받기에 교체할 정보가 적기 때문에
프로세스 보다는 스레드간의 스위칭이 빠름data race에 주의