프로세스는 메모리에 적재되고 CPU 자원을 할당 받아 프로그램이 실행되고 있는 상태
스레드는 프로세스 내에서 실행되고 있는 여러가지 실행의 단위
스레드는 스택메모리를 제외한 다른 메모리 영역들을 프로세스 내 다른 스레드들과 공유합니다.
차이점
프로세스는 자원을 공유하지 않지만, 스레드는 자원을 공유한다는 차이가 있습니다.
- 멀티 프로세스 & 멀티 스레드란?
멀티 프로세스는 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업(task)을 처리하는 것입니다.
하나의 프로세스가 잘못 되어도 프로그램은 동작한다는 장점이 있지만 Context Switching 비용이 발생합니다.
멀티 스레드는 프로그램을 여러개의 스레드로 구성하고 각 스레드가 작업(task)을 처리하는 것입니다. 캐싱적중률이 높아 시스템 자원 소모 감소, 처리비용 감소(실행 속도 향상), 스레드간 자원 공유(stack 제외)라는 장점이 있지만 디버깅이 어렵고, 동기화 이슈가 발생할 수 있다는 단점이 있습니다.
멀티코어는 하드웨어 측면에서 실행단위를 병렬적으로 처리할 수 있도록 여러 프로세서가 있는 것
'기술면접스터디' 카테고리의 다른 글
Redux 상태관리의 주요 개념 (0) | 2023.03.03 |
---|---|
React의 state와 props / <li>요소 / Semantic HTML의 필요성 (0) | 2023.03.02 |
Cookie의 MaxAge, Expires / 순수함수 (0) | 2023.03.01 |
useRef가 필요한 상황 / 객체나 배열을 const로 선언했는데 수정가능한 이유 (0) | 2023.02.28 |
require와 import의 차이점 (0) | 2023.02.27 |