간단히 말하자면 멀티 프로세스는 여러개의 프로그램을 키는 것이고 멀티 스레드는 하나의 프로그램에서 여러개의 작업을 하는 것이다.
멀티 프로세스는 프로세스를 새로 생성하여 자원을 할당해야 하는 시스템콜이 필요하지만 멀티스레드는 그렇지 않기 때문에 자원을 효과적으로 관리할 수 있다.
프로세스간의 소켓통신, 쉐어드메모리 등의 IPC보다 스레드간의 통신이 훨씬 비용이 적어 통신 부담이 줄어든다.
스레드는 스택영역을 제외한 자원을 공유하므로 Context Switching시 스레드간의 전환 속도가 빠르다.
-- Context Switching이란 CPU가 여러개의 프로세스의 작업을 번갈아 가며 처리하는 과정.
-- 동작 중인 프로세스가 대기를 하면서 해당 프로세스의 상태(Context)를 보관하고, 대기하고 있던 다음 순서의 프로세스가 동작하면서 이전에 보관했던 프로세스의 상태를 복구하는 작업을 말한다.