프로세스 내에서 실행되는 흐름의 단위 혹은 CPU 스케줄링의 기본 단위 라고 할 수 있다. 쓰레드는 다음과 같은 특징을 가지고 있다. 쓰레드는 프로세스 내에서 Code, Data, Heap 영역을 공유한다
프로세스 : 프로세스 간 서로 접근 불가(IPC 사용하여 소통) , 멀티 프로세스/ 병렬실행 (여러개의 코어로 빠르게 작동)
쓰레드 : 하나의 프로세스에 여러개의 쓰레드 생성 가능, 스레드들은 동시에 실행 가능하고 프로세스 안에 있으므로 프로세스의 데이터에 모두 접근이 가능하다.

1. 사용자에 대한 응답성/성능 향상
process 1
2. 자원 공유 효율
프로세스 안에 있어 별도 공간이 필요없어 자원 공유 효율이 높다. (IPC 기법 필요 X)
3. 작업이 분리되어 코드가 간결
쓰레드 중 한 쓰레드만 문제가 있어도 전체 프로세스에 영향을 끼침
쓰레드를 많이 생성하면 Context Switching이 자주 일어나 성능이 저하
동기화 이슈로 비정상적으로 동작 가능 -> 동기화 코드를 별도로 추가해야됨
프로세스는 독립적, 쓰레드는 프로세스의 서브셋
프로세스는 각각 독립적인 자원을 가짐, 쓰레드는 프로세스 자원 공유
프로세스는 자신만의 주소 영역을 가짐, 쓰레드는 주소 영역 공유
프로세스 간에는 IPC기법으로 통신, 쓰레드는 필요X