프로세스
는 메모리 상에서 실행중인 작업의 단위, 즉 실행중인 프로그램을 말하며,스레드
는 프로세스 안에서 실행되는 여러 흐름 단위를 말한다. 즉 스레드는 프로세스 안에 포함되며 프로세스는 최소 1개의 스레드를 보유한다.
즉, 프로세스는 자신만의 고유한 공간과 자원을 할당받아 사용하는 반면에, 스레드는 다른 스레드들과 공간, 자원을 공유하면서 사용한다.
멀티 프로세스: 하나 이상의 프로세스들을 병렬 처리
*context switch: 하나의 프로세스가 cpu를 사용중인 상태에서 다른 프로세스가 cpu를 사용하기 위해 이전 프로세스 상태를 저장하고 새로운 프로세스의 상태를 적재하는 작업
멀티 스레드: 하나의 응용프로그램에서 여러 스레드를 구성해 각 스레드가 하나의 작업을 처리하는 것
1. 장점: 공유 메모리만큼 시간 및 자원 손실 감소, 응답성과 자원 효율 증가
2. 단점: 안전성(하나의 스레드가 데이터 공간을 망가트리면 모든 스레드 불능)