프로세스(Process)
쓰레드와 프로세스의 차이를 이해하기 위해 우선 프로세스에 대해 알 필요가 있다.
프로세스 = OS로부터 메모리를 할당 받은 “실행 중인 프로그램”
컴퓨터의 작업관리자를 실행하여 확인하곤 하는 프로세스가 여기서 이야기 하는 프로세스. 😎
말 그대로 실행 프로그램
프로세스는 데이터, 메모리 등 실행에 필요한 자원 + 쓰레드로 이루어져 있다.
프로세스는 반드시 하나 이상의 쓰레드를 가진다.
프로세스 = 공장, 쓰레드 = 일꾼
프로세스의 성능이 쓰레드의 개수에 비례하지는 않는다. (공장은 수용할 수 있는 일꾼이 정해져 있기 때문에)
쓰레드(Thread)
쓰레드는 프로세스 내에서 일이 처리되는 흐름 을 이야기 한다.
쓰레드는 프로세스에 비해 생성시 시간과 메모리 공간이 적게 필요하다.
따라서 쓰레드를 ‘경량 프로세스(LWP, Light-Weight Process)’라고도 한다.
멀티 태스킹 vs 멀티 쓰레드
멀티 태스킹: 하나의 OS 안에 여러 개의 프로세스가 동시에 실행 되는 것
멀티 쓰레드: 하나의 프로세스 안에 여러개의 쓰레드가 동시에 실행 되는 것
