쓰레드, Thread

JinJinJara·2023년 9월 20일
0

TIL

목록 보기
9/19
post-thumbnail

스레드(Thread)

프로세스 내에서 실행되는 흐름의 단위

특징

  1. 하나의 프로그램에 여러개의 Thread 를 동시 구성/실행 가능

  2. 하나의 프로세스 내에서 모든 Thread 는 기본적으로 같은 주소 공간 ( 메모리 영역 ) 을 공유

    • Code 영역 → 실행 코드 (읽기 전용)

    • Data 영역 → 전역/정적 변수

    • Heap 영역 → 메모리 할당 및 해제 : malloc, new / free , delete

    • Stack 영역 → 공유X (함수, 지역/매개 변수..)

  3. 각 Thread별로 Stack 을 가지고 있음

  4. 각 Thread별로 Register 을 가지고 있음

    • Thread Context Switching

Process & Thread

process : 운영체제로부터 자원을 할당받는 작업의 단위
thread : 할당 받은 자원을 이용하는 실행의 단위 ( 프로세스 내에 여러개 생성 가능 )

  • Thread

    • 하나의 프로세스 내의 자원을 공유하기 때문에 프로세스에 비해 자원 할당 비용이 적게 들고 문맥 교환 비용도 적음
    • 다중 스레드의 경우 일부 스레드의 처리가 지연되더라도 다른 스레드에서 작업을 계속 처리할 수 있음
  • Process

    • 프로세스 간의 통신은 IPC가 필요한 반면, 쓰레드는 공유(데이터, 힙)주소 공간을 사용하여 데이터를 교환할 수 있음
    • 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리
    • 하나의 쓰레드에서 발생한 문제가 프로세스 전반에 영향을 미칠 수 있음

0개의 댓글