프로세스는 메모리에 적재되고 CPU 자원을 할당 받아 프로그램이 실행되고 있는 상태

스레드는 프로세스 내에서 실행되고 있는 여러가지 실행의 단위

스레드는 스택메모리를 제외한 다른 메모리 영역들을 프로세스 내 다른 스레드들과 공유합니다.

 

 차이점

프로세스는 자원을 공유하지 않지만, 스레드는 자원을 공유한다는 차이가 있습니다.

 

- 멀티 프로세스 & 멀티 스레드란?

멀티 프로세스는 하나의 프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업(task)을 처리하는 것입니다.

하나의 프로세스가 잘못 되어도 프로그램은 동작한다는 장점이 있지만 Context Switching 비용이 발생합니다.

    

멀티 스레드는 프로그램을 여러개의 스레드로 구성하고 각 스레드가 작업(task)을 처리하는 것입니다. 캐싱적중률이 높아 시스템 자원 소모 감소, 처리비용 감소(실행 속도 향상), 스레드간 자원 공유(stack 제외)라는 장점이 있지만 디버깅이 어렵고, 동기화 이슈가 발생할 수 있다는 단점이 있습니다.

 

멀티코어는 하드웨어 측면에서 실행단위를 병렬적으로 처리할 수 있도록 여러 프로세서가 있는 것

 

+ Recent posts