스레드란?

찬밥·2025년 7월 3일

스레드란?

스레드는 CPU이용의 기본 단위이다.전통적인 프로세스는 하나의 스레드만 가지지만, 만일 프로세스가 다수의 스레드를 갖게 된다면 동시에 하나 이상의 작업을 수행할 수 있다. 또한 같은 프로세스 내의 여러 스레드는 서로 자원들을 공유한다.

스레드의 구성은 어떻게 될까?

  • 스레드ID
  • 프로그램 카운터(PC)
  • 레지스터 집합
  • 스택

스레드가 필요한 이유는?

프로세스의 생성 작업은 매우 많은 시간을 소요하고 많은 자원을 필요로 한다. 그런데 새 프로세스의 작업이 기존 프로세스의 작업과 동일하다면..? 새로 만드는 것 보다 같은 프로세스안에 여러 스레드를 만드는 것이 효율적이다.
스레드는 프로세스의 자원을 공유하기 때문에!

스레드 사용 예시

웹 서버는 여러개의 클라이언트로부터 요청을 받으면, 그 요청을 수행한 별도의 프로세스를 만든다.

장점

이러한 스레드 프로그래밍은 어떤 이점이 있을까?

  1. 응답성
    응용 프로그램이 긴 작업을 수행하더라도, 연산이 오래 걸리는 작업을 별도의 스레드에서 실행된다면 프로그램이 계속 수행되는 것을 허용함으로써 사용자의 응답성을 증가시킨다.
    2. 자원 공유
    프로세스들은 공유 메모리와 메시지 전달 기법을 통해 자원을 공유한다. 그러나 스레드는 그들이 속한 프로세스의 자원들과 메모리를 공유한다.
    3. 경제성
    자원 공유를 통해 스레드를 생성 및 문맥 교환시 프로세스를 생성하거나 문맥 교환하는 것보다 경제적이다.
  2. 규모 적응성
    다중 스레드는 다중 처리기 구조에서 각각의 스레드가 병렬로 수행될 수 있으므로 적응성이 높다.
profile
찬밥신세

0개의 댓글