프로세스는 실행 중인 프로그램이자 자원 할당의 단위이고, 스레드는 프로세스 안에서 실행되는 흐름의 단위입니다.

프로세스는 독립된 가상 주소 공간을 가지며, 같은 프로세스의 스레드는 코드·데이터·힙과 열린 파일 같은 자원을 공유합니다. 반면 각 스레드는 자신의 스택과 레지스터 상태, 프로그램 카운터를 가집니다.

따라서 프로세스 간 데이터 교환에는 IPC가 필요하고, 스레드 간에는 공유 메모리로 소통할 수 있습니다. 이 공유 구조 덕분에 스레드 간 통신은 간편하지만, 같은 데이터를 수정할 때는 동기화가 필요합니다.

출처 및 참고자료