Backend CS - #12 스레드(Thread)

박주현·2023년 3월 1일
0
post-thumbnail

1. 스레드(Thread)

  • CPU 수행의 기본 단위
  • 프로그램이 실행하는 Task 단위
  • 하나의 컴퓨터에 CPU가 2개 있다면 동시에 처리 할 수 있는 작업은 2개이지만,
    사용자는 여러 작업을 수행하기를 원한다. 그러기에 여러개의 작업을 번갈아가면서 처리하면 동시에 많은 작업을 처리하는 것 처럼
    보이는데, 이걸 쓰레드라고 한다.
  • 구성: Thread ID, Program counter, Register set, Stack space

2. 멀티스레드(Multi Thread)

  • 한 프로세스가 여러 쓰레드로 동시에 여러 작업을 수행.
  • 프로세스가 여러개인 경우에는 멀티 스레드를 통해서 병렬성을 높임.
    → 병렬적으로 수행되어야 여러 작업을 동시에 수행가능하다.
  • 프로세스가 하나인 경우에는 동시성을 높을 수 있다.
    → 각각의 시간에 한 작업만 수행되지만, 병렬적으로 수행되는 것 처럼 보임.

2.1 멀티스레드 장점

  1. 응답성
    : 싱글 스레드 일 경우에 작업이 끝나기 전까지 사용자에게 응답을 하지 않는다. 하지만, 멀티 스레드인 경우에는 실시간으로
    사용자에게 응답이 가능하다.
  2. 자원 공유
    : 자신이 속한 프로세스 내의 스레드와 메모리에 자원을 공유해서 효율적으로 사용가능.
  3. 경제성
    : 프로세스를 새로 생성하는 비용보다 스레드를 새로 생성하는 비용이 훨씬 저렴하다.
  4. 확장성
    : 싱글스레드 같은 경우에는 한 프로세스에서만 수행가능하지만, 멀티 스레드는 한 프로세스를 여러 프로세스에서 수행 가능하다.
profile
빌드업 막 시작하는 개발자

0개의 댓글