프로세스: 실행 중인 프로그램, 자원(메모리, CPU)과 쓰레드로 구성 → 공장
쓰레드: 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. → 일꾼
싱글 쓰레드 프로세스
= 자원 + 쓰레드
= 자원 + 쓰레드 + 쓰레드 + … + 쓰레드
우리가 사용하는 대부분의 프로그램은 멀티 쓰레드이다.
프로세스를 하나 생성하는건 공장을 하나 만드는 것이고, 쓰레드를 하나 생성하는건 일꾼을 하나 추가하는 것이다.
| 장점 | - 시스템 자원을 보다 효율적으로 사용할 수 있다.
교착상태 deadlock → 서로가 서로에게 필요한 자원을 들고 교환하지 못하는 상태
class MyThread extends Thread {
public void run() { // Thread클래스의 run()을 오버라이딩
// 작업내용 (main 메서드 안의 내용에 들어가는 것)
}
}
쓰레드를 상속받으면 다른 클래스를 상속받기 어려움