스레드란 하나의 프로세스 안에서 실행되는 작업의 흐름 단위입니다.
프로세스 = 실행 중인 프로그램
스레드 = 그 안에서 실제로 일을 하는 실행 단위
| 구분 | 프로세스 | 스레드 |
|---|---|---|
| 메모리 | 독립 | 공유 |
| 생성 비용 | 큼 | 작음 |
| 통신 | IPC 필요 | 공유 메모리 |
| 안정성 | 높음 | 상대적으로 낮음 |
👉 Java 서버는 멀티스레드 기반
class MyThread extends Thread {
@Override
public void run() {
System.out.println("스레드 실행");
}
}
MyThread t = new MyThread();
t.start();
⚠️ run() 직접 호출 ❌
⚠️ 반드시 start()
class MyTask implements Runnable {
@Override
public void run() {
System.out.println("작업 실행");
}
}
Thread t = new Thread(new MyTask());
t.start();