song.log

[자바 기술면접] 21. 스레드의 상태 본문

StudyLog/Java interview

[자바 기술면접] 21. 스레드의 상태

SingaKorean 2023. 4. 29. 18:28
반응형

- 정의

스레드의 상태는 크게 6가지로 분류됩니다.

 

NEW : 스레드가 생성되었지만, 아직 start() 메소드가 호출되지 않은 상태입니다.

RUNNABLE : 스레드가 실행 가능한 상태로, 실행되기 위해 대기하고 있는 상태입니다.

BLOCKED : 스레드가 실행 가능한 상태가 아니며, 다른 스레드가 락을 획득하여 실행될 때까지 대기하고 있는 상태입니다. WAITING : 스레드가 다른 스레드가 특정 작업을 완료할 때까지 대기하고 있는 상태입니다.

TIMED_WAITING : 스레드가 다른 스레드가 특정 작업을 일정 시간 동안만 기다리고 있는 상태입니다.

TERMINATED : 스레드가 실행을 마친 상태입니다. 이후에는 다시 시작될 수 없습니다.

 

스레드의 상태 변화는 스레드 스케줄러의 결정에 의해 이루어지며, 여러 스레드가 경쟁적으로 실행되는 환경에서 동기화와 락을 통해 스레드 간의 안전한 상호작용을 보장해야 합니다.

 

- 영어 정리 :

Threads can exist in 6 states : 

NEW : A thread has been created but the start() method has not been called yet.

RUNNABLE : A thread is in a runnable state and waiting to be executed.

BLOCKED : A thread is not in a runnable state and is waiting for another thread to release a lock so that it can be executed.

WAITING : A thread is waiting for another thread to complete a specific task.

TIMED_WAITING : A thread is waiting for another thread to complete a specific task for a certain amount of time.

TERMINATED : A thread has completed its execution and cannot be started again.

 

The state changes of a thread are determined by the thread scheduler, and in an environment where multiple threads are executing competitively, synchronization and locks must be used to ensure safe interactions between threads.

반응형
Comments