스레드
스레드(Thread) 는 프로그램 안에서 작업을 처리하는 실행 흐름입니다.
쉽게 말하면
프로그램 안에서 일하는 일꾼 하나라고 생각하면 돼요.
비유
| 비유 | 프로세스 | 스레드 |
|---|---|---|
| 공장 | 공장 건물 | 공장 안 일꾼 |
| 음식점 | 가게 | 직원 |
| 회사 | 회사 | 직원 |
프로세스 (프로그램 하나)
├── 스레드 1 (일꾼)
├── 스레드 2 (일꾼)
└── 스레드 3 (일꾼)
싱글 스레드 vs 멀티 스레드
싱글 스레드 (일꾼 1명)
일꾼: 작업1 → 작업2 → 작업3 (순서대로)
멀티 스레드 (일꾼 여러 명)
일꾼1: 작업1
일꾼2: 작업2 ← 동시에 처리
일꾼3: 작업3
JavaScript는?
싱글 스레드입니다. 일꾼이 1명이에요.
console.log("1");
console.log("2");
console.log("3");
// 무조건 순서대로 실행
그래서 하나가 오래 걸리면 뒤에가 막혀요 (블로킹).
그럼 JS는 느리나?
아니요. 비동기처리**로 해결해요.
console.log("1");
setTimeout(() => console.log("2"), 1000); // 나중에 처리
console.log("3");
// 결과: 1 → 3 → 2
일꾼이 기다리지 않고 다른 일 먼저 하고, 나중에 돌아와서 처리합니다.
한줄 요약
스레드 = 프로그램 안에서 작업을 처리하는 실행 단위 (JavaScript는 싱글 스레드)