프로세스와 스레드가 뭐에요? 라고 말하면 답하는건 어렵지만 않지만 이둘의 차이점은 어떤것이 있는지, 깊게 파고들면 정확하게 대답하기가 쉽지않다. 우선 프로세스란 OS로부터 자원을 할당받은 작업의 단위다. 스레드란, 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위다. 즉 스레드는, 한 프로세스 내에서 나뉘어진 실행 단위인 셈이다. 가령 프로세스 두개가 동시에 실행하기 위해선, 프로세스1이 cpu에 적재되었다가, 준비상태로 내려가고 프로세스2가 적재되고, 이를 반복한다. 이것이 문맥교환이며, 이것이 반복되면 복잡하고 오버헤드가 발생하기 쉽다. 그래서 스레드는 프로세스의 메모리 구조에서, 코드 데이터 힙 영역을 공유한다. 스택 부분만 스레드마다 따로 가지고 있는 것이다. 공유되는 자원이 있기에, 문맥교환..