프로세스와 스레드 차이
프로세스(Process)
메모리영역에 올라와 실행되고 있는 프로그램의 인스턴스
운영체제로부터 시스템 자원을 할당받는 작업 단위
프로세스 당 최소 1개 이상의 스레드를 가짐
한 프로세스는 다른 프로세스의 변수나 자료 구조에 접근 불가 (접근시 IPC통신방법 필요)
스레드( Thread)
- 프로세스 내에 실행되는 여러 흐름의 단위
- 프로세스가 할당받은 자원을 이용하는 실행의 단위
- 같은 프로세스 내 여러 스레드들은 같은 힙 공간을 공유
멀티 프로세스
- 하나의 응용 프로그램을 여러 개의 프로세스로 구성해 각 프로세스가 하나의 작업을 처리하도록 하는 것
- 한 프로세스가 죽어도 다른 프로세스는 영향을 받지 않고 수행 가능
- 오버헤드 발새아 프로세스 간 공유 메모리가 없어 번거로움
멀티 스레드
- 하나의 응용 프로그램을 여러 개의 스레드로 구성해 각 스레드로 하여금 하나의 작업을 처리하도록 하는 것\
- 자원 소모가 적음
- 시스템 처리량 증가로 처리 비용 감소
- 간단한 통신으로 응답 시간 단축
- 동기화 등 자원 공유 문제 발생
- 하나의 스레드에 문제가 생기면 전체 프로세스에 영향
'취업준비 > Computer Science' 카테고리의 다른 글
Git 사용법 (0) | 2022.01.30 |
---|---|
HTTP 통신 (0) | 2021.12.01 |