Thread (스레드)

스레드

Posted by Seohyun Park, Aileen on January 19, 2024 · 1 min read
OS, THREAD

스레드 (Thread)

스레드는 프로세스 내에서 실행되는 여러 흐름의 단위이다.

하나의 프로세스는 여러 개의 스레드를 가질 수 있다.

스레드를 이용하면, 하나의 프로세스에서, 여러 부분을 동시에 실행할 수 있다.

스레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 시퀀스이다. 하나의 프로세스는 하나 이상의 스레드를 갖고 있다.


스레드의 장점

  1. 응답성 (Responsiveness)

    • 프로그램의 일부분이 응답하지 않는 경우, 다른 스레드가 작업을 계속 수행할 수 있다.
  2. 자원 공유 (Resource Sharing)

    • 프로세스 내의 자원 (메모리, 파일 등) 을 공유할 수 있다.
  3. 경제성 (Economy)

    • 프로세스를 생성을 위한 메모리와 자원 할당, 프로세스 간 문맥 교환은 비용이 많이 들고, 오버헤드가 발생하는 반면, 스레드는 프로세스 내의 자원을 공유하기 때문에, 프로세스를 생성하는 것보다 훨씬 적은 비용이 든다.
  4. 규모 확장성 (Scalability)

    • 멀티 프로세서 구조에서는, 스레드들이 각자 다른 프로세서에서 병렬로 실행될 수 있어서, 다중 CPU 시스템에서 병렬성이 증가한다.