취업준비/Computer Science

프로세스(Process)와 스레드(Thread)

몽땅마니아(MDD) 2022. 3. 29. 22:10

프로세스와 스레드 차이

참고 블로그

기가 막힌 설명 유튜브(얄팍한 코딩사전)

프로세스(Process)

  • 메모리영역에 올라와 실행되고 있는 프로그램의 인스턴스

  • 운영체제로부터 시스템 자원을 할당받는 작업 단위

  • 프로세스 당 최소 1개 이상의 스레드를 가짐

  • 한 프로세스는 다른 프로세스의 변수나 자료 구조에 접근 불가 (접근시 IPC통신방법 필요)

스레드( Thread)

  • 프로세스 내에 실행되는 여러 흐름의 단위
  • 프로세스가 할당받은 자원을 이용하는 실행의 단위
  • 같은 프로세스 내 여러 스레드들은 같은 힙 공간을 공유

멀티 프로세스

  • 하나의 응용 프로그램을 여러 개의 프로세스로 구성해 각 프로세스가 하나의 작업을 처리하도록 하는 것
  • 한 프로세스가 죽어도 다른 프로세스는 영향을 받지 않고 수행 가능
  • 오버헤드 발새아 프로세스 간 공유 메모리가 없어 번거로움

멀티 스레드

  • 하나의 응용 프로그램을 여러 개의 스레드로 구성해 각 스레드로 하여금 하나의 작업을 처리하도록 하는 것\
  • 자원 소모가 적음
  • 시스템 처리량 증가로 처리 비용 감소
  • 간단한 통신으로 응답 시간 단축
  • 동기화 등 자원 공유 문제 발생
  • 하나의 스레드에 문제가 생기면 전체 프로세스에 영향

'취업준비 > Computer Science' 카테고리의 다른 글

Git 사용법  (0) 2022.01.30
HTTP 통신  (0) 2021.12.01