: 프로세스의 실행 가능한 가장 작은 단위
프로세스는 여러 스레드를 가질 수 있다.
프로세스와의 차이점
: 프로세스는 코드 , 데이터, 스택, 힙을 각각 생성하지만 스레드는 코드, 데이터, 힙을 서로 공유한다. 그 외의 영역은 각각 생성한다.
: 프로세스 내 작업을 여러 개의 스레드로 처리하는 기법이다.
장점
1. 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높다.
2. 웹 요청을 처리할 때 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버의 경우는 훨씬 적은 리소스를 소비하며 한 스레드가 중단되어도 다른 스레드는 실행 상태일 수 있기 때문에 중단되지 않은 빠른 처리가 가능하다.
3. 동시성(서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것 처럼 보여주는 것)
단점
1. 한 스레드에 문제가 생기면 다른 스레드에도 영향을 끼쳐 스레드로 이루어져 있는 프로세스에 영향을 줄 수 있다.
멀티 스레드의 예 - 웹 브라우저의 랜더러 프로세스
랜더러 프로세스 내에는 메인 스레드, 워커 스레드, 컴포지터 스레드, 레스터 스레드가 존재한다.