thread split

스레드는 주소 공간을 공유하지만 실행 위치는 각자 들고 간다

가벼운 실행 단위라는 장점은 공유 메모리에서 오는 경쟁 조건, 교착 상태, 우선순위 역전 위험과 함께 이해해야 합니다.

shared코드 힙 파일 디스크립터
private스택 PC 레지스터
concur번갈아 실행
parallel여러 코어 동시 실행
공유 자원

같은 프로세스의 전역 변수와 힙을 공유하므로 데이터 전달 비용이 낮습니다.

고유 상태

각 스레드는 자기 스택과 레지스터를 가져 함수 호출 흐름을 독립적으로 유지합니다.

응답성

한 작업이 I/O를 기다릴 때 다른 스레드가 요청을 처리합니다.

병렬 실행

멀티코어에서는 계산 작업을 여러 스레드로 나누어 실제 동시 실행을 얻을 수 있습니다.

경쟁 조건

공유 변수를 동시에 수정하면 읽기, 증가, 쓰기 순서가 섞여 결과가 달라질 수 있습니다.

다음 연결

뮤텍스, 세마포어, 데드락은 모두 공유 상태를 안전하게 다루기 위한 후속 주제입니다.