운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스(process)라고 부른다.
사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아, 애플리케이션의 코드를 실행한다 → 프로세스
하나의 애플리케이션은 다중 프로세스를 만들기도 한다.
두 가지 이상의 작업을 동시에 처리하는 것 → 멀티 태스킹(multi tasking)
그렇다면 어떻게 하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있나?
→ 멀티 스레드(multi thread)
멀티 프로세스들은 운영체제에서 할당받은 자신의 메모리를 가지고 실행한다.
→ 서로 독립적이다.
→ 하나의 프로세스에서 오류가 발생해도 다른 프로세스에게 영향을 미치지 않는다.
하지만 멀티 스레드는 하나의 프로세스 내부에 생성되기 때문에 하나의 스레드가 에외를 발생시키면 프로세스 자체가 종료될 수 있다.
→ 다른 스레드에게 영향을 미친다.
멀티 스레드는 다양한 곳에서 사용된다.