의문점 공부하기/📌 Java

📌 스레드에 여러가지 상태가 있다???

아리빠 2023. 7. 21. 17:21

스레드: 프로그래밍에서 동시에 실행되는 일련의 작업 단위

-New (생성됨): 스레드가 생성되고 아직 실행되기 전의 상태

이 상태에서는 아직 스레드가 실행되지 않았으므로, 아래와 같은 코드로 스레드를 생성할 수 있다

Thread thread = new Thread();
 

 

-Runnable (실행 가능): 스레드가 실행을 기다리는 상태

스레드가 실행을 시작하려면 CPU 시간 할당을 받아야한다

만약 여러 개의 스레드가 실행 가능한 경우, 스케줄러에 의해 스레드가 선택되고 실행될 수 있다

thread.start();
 

 

-Running (실행 중): 스레드가 CPU 시간을 할당받고 실제로 실행 중인 상태

스레드는 Run 메소드 내에서 실행되는 작업을 수행하며, 실행이 완료되기 전에는 Running 상태를 유지한다

 

-Waiting (대기 중): 스레드가 다른 스레드나 리소스의 완료를 기다리는 상태

Waiting 상태는 특정 조건이 충족될 때까지 대기하며, 조건이 충족되면 다시 Runnable 상태로 전환

 

-Blocked (차단됨): 스레드가 다른 스레드로부터 특정 리소스를 사용하려고 할 때 차단되는 상태

Blocked 상태에서는 다른 스레드가 차단 상태를 해제할 때까지 대기하며, 해당 리소스를 사용할 수 있는 상태가 되면 다시 Runnable 상태로 전환

 

-Terminated (종료됨): 스레드 실행이 완료되거나 중지된 상태

이 상태에 도달하면 스레드는 제거되며, 더 이상 실행되지 않는다