스레드는 프로세스 안에서 독립적인 실행 흐름을 표현하는 단위이다. 여러 스레드가 주소 공간을 공유하면서 각각 실행 상태를 가진다.
원리
각 스레드는 프로그램 카운터와 레지스터, 스택 등의 상태를 유지한다. 공유 데이터에 동시에 접근할 수 있어 작업 분담과 함께 동기화 문제가 발생한다.
예시
서버가 여러 요청을 처리하거나 계산 작업을 여러 코어에 나누는 데 활용할 수 있다. 공유 캐시를 이용해 스레드 사이에 자료를 전달할 수도 있다.
Docker 구성 요소 |
|---|
Docker · Docker 이미지 · Docker 컨테이너 · Dockerfile · Docker 볼륨 |
Docker 바인드 마운트 · Docker 네트워크 · Docker Compose · Docker 다단계 빌드 · Docker 빌드 캐시 |
주의할 점
스레드를 늘린다고 항상 빨라지는 것은 아니다. 공유 상태의 경쟁과 잠금 비용, 메모리 가시성, 종료 시점 및 자원 사용을 함께 설계해야 한다.