운영체제

스레드의 개념

프로세스가 실행 중인 프로그램이라면, 스레드(Thread)는 프로세스 안에서의 실행 흐름입니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 이 스레드들은 같은 메모리 공간을 공유하면서 독립적으로 실행됩니다.

스레드가 프로세스 자원을 공유하면서도 각자 스택과 실행 상태를 갖는 방식을 확인합니다.

공유 자원과 독립 실행 지점 구분

1

스레드가 공유하는 것과 고유한 것

같은 프로세스 내의 스레드들이 무엇을 공유하고 무엇을 독립적으로 가지는지를 정확히 이해하는 것이 멀티스레드 프로그래밍의 기초입니다.

2

멀티스레드의 장점

응답성(Responsiveness): GUI 애플리케이션에서 핵심입니다.

3

싱글 스레드 vs 멀티 스레드

요청을 하나씩 처리하는 서버와 요청마다 스레드를 나누는 서버를 비교해 응답성과 동기화 비용을 봅니다.

4

동시성 vs 병렬성

이 두 용어를 정확히 구분해야 합니다.