JAVA/chapter01_JAVA_개념정리
chapter21_thread
GAWON
2023. 5. 31. 18:18
1.1 스레드(Thread)
- 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위.
- ex) 작업 관리자에 실행되는 프로세스들
- 모든 프로세스에는 최소 하나 이상의 스레드가 존재하며(main()),
두 개 이상의 스레드를 가지면 멀티 스레드라고 한다.
- 멀티 스레드(main() 이외의 다른 스레드)를 구현 하려면 Thread 클래스를
상속하거나 Runnable 인터페이스를 구현해야 한다.
- 멀티 스레드 작업 시 각 스레드끼리 정보를 주고 받을 수 있다.
- 프로세스끼리는 정보를 주고 받을 수 없다.
1.2 스레드 생성
- 방법
1) Thread 클래스를 상속 받아 객체 생성
2) Runnable 인터페이스 구현 (주로 많이 사용)
* Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에
Runnable 인터페이스를 구현하는것이 일반적이다.
1.3 스레드 생성 주기
Start() Run()
스레드 객체 생성(new) → 실행 대기(Runnable) → 실행(Running) → 종료(Dead)
↑ ↓
↖ ↙
중단(Blocked)
- Runnable 상태 : 스레드가 실행되기 전 준비 단계
- Running 상태 : 선택된 스레드가 실행되는 단계
- Blocked 상태 : 스레드가 작업을 완수하지 못하고 작업을 일시 중단하는 단계