동시성: 스레드(thread)

edward·2025년 10월 14일

우리는 일반적으로 하나의 프로세스(process) 가 하나의 제어 흐름(control flow) 을 가진다고 생각하지만,
현대 시스템에서는 하나의 프로세스가 실제로는 여러 개의 실행 단위(execution unit) 로 구성될 수 있다.
이 실행 단위들을 스레드(thread) 라고 한다.

각 스레드는 동일한 프로세스의 문맥(context) 내에서 실행되며,
같은 코드와 전역 데이터(global data) 를 공유한다.


스레드는 오늘날 점점 더 중요한 프로그래밍 모델이 되고 있다.
특히 네트워크 서버 같은 환경에서 동시성(concurrency) 이 필요하기 때문이다.

그 이유는 다음과 같다:

  • 여러 프로세스 간에 데이터를 공유하는 것보다,
    여러 스레드 간에 데이터를 공유하는 것이 훨씬 쉽다.

  • 스레드는 일반적으로 프로세스보다 효율적이다.
    (프로세스 간 전환보다 스레드 간 전환이 비용이 훨씬 적음)

  • 또한, 멀티코어 프로세서 환경에서는 여러 스레드를 동시에 실행함으로써
    프로그램의 실행 속도를 크게 향상시킬 수 있다.

profile
there ain't no shortcuts

0개의 댓글