만약 하나의 프로세스 내에 여러 개의 스레드가 있다면 각 스레드는 스택 영역만 따로 할당받고 나머지 영역을 공유합니다. 즉 프로세스 내 코드 영역, 데이터 영역, 힙 영역을 서로 공유하면서 실행됩니다.
그림 2-15 스레드가 여러 개일 때 프로세스의 메모리 구조
이처럼 하나의 프로세스를 여러 개의 스레드로 구성하고 둘 이상의 스레드가 동시에 작업을 처리하는 방식을 멀티스레드(multi-thread)라고 합니다. 멀티스레드는 작업을 분할해 동시에 처리함으로써 성능을 향상하고 자원을 효율적으로 사용할 수 있게 합니다. 하지만 여러 스레드가 자원을 공유하기 때문에 동기화 등의 문제가 발생할 수 있으므로 적절한 스레드 동기화 기술이 필요합니다. 이에 대해서는 2.2.3절 공유 자원과 동기화 문제에서 자세히 설명하겠습니다.