스레드는 무엇인가

지수 🤓·2020년 5월 26일
0

개념 정리

목록 보기
15/17
post-thumbnail

스레드란?

프로세스의 처리속도를 높이기 위해 하나의 프로세스가 수행해야 할 여러 작업들을 나누어 수행할 수 있도록 설계된 것이다.

프로세스가 할당받은 자원을 이용하는 실행의 단위

한 프로세스에 존재하는 모든 스레드들은 프로세스의 상태를 공유한다.

스레드는 각각의 스택 영역을 가지고 있는 하나의 함수라고 생각하면 이해가 쉽다.

멀티 스레드

하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것을 멀티스레딩이라고 한다.

  • 멀티 태스킹
    하나의 CPU가 여러 프로세스를 번갈아 가면서 실행하는 것
  • 멀티 프로세싱
    하나의 프로세스를 여러 개의 CPU를 사용해서 실행
  • 멀티 스레드
    스레드를 여러 개 만들어서 실행

장점

  • 작업 처리 시간을 향상시킨다
  • 프로세스 내의 모든 데이터가 접근 가능하므로 자원 공유가 번거롭지 않다

단점

  • 하나의 스레드만 문제가 생겨도 전체 프로세스가 영향을 받는다
  • 스레드를 너무 많이 생성하면 스케줄링해야하므로 성능 저하가 발생한다

출처

profile
Backend Junior Developer

0개의 댓글