본문 바로가기
Programming/C#

[C#] Thread(2) 스레드의 상태

by devfactory 2024. 9. 28.

스레드의 상태

스레드는 크게 생성직후(Unstarted), 실행가능(Runnable), 대기(Suspended), 종료(Stopped) 4가지 상태로 나눌 수 있다.

 

1.생성직후(Unstarted) 상태

스레드가 막 생성된 상태로 이상태에서 스레드의 Start() 메소드가 호출되면 실행가능 상태가 되고, 해당 스레드의 메소드가 종료되면 바로 종료상태가 된다.

 

2. 실행가능(Runnable) 상태

실행가능 상태의 스레드들은 큐에 저장한 후 CLR(공용 언어 런타임)에서 관리한다. CPU는 한번에 하나의 스레드만을 실행 할 수 있기 때문에 하나의 스레드만 실행되고, 나머지 스레드 들은 대기하고 있다. 이 2가지 경우의 스레드를 모두를 실행가능 상태라고 말한다.

 

3. 대기(Suspended) 상태

실행중인 스레드를 Suspend()메소드나 Sleep()메소드를 통해 일시정지하게 되면 스레드는 그 순간 대기상태가 된다.

즉, 실행가능 상태의 큐에서 나와 대기상태의 큐로 옮기게 된다.

 

4. 종료상태(Stopped) 상태

스레드가 모두 마치거나 Abort()와 같은 강제종료 메소드를 수행하면 종료상태로 변경된다.

 

스레드의 동작 상태도

 

반응형

'Programming > C#' 카테고리의 다른 글

[C#] 연산자 재정의  (0) 2024.09.28
[C#] Thread(3) 스레드 동기화  (1) 2024.09.28
[C#] Thread(1) 스레드의 개념  (1) 2024.09.28
[C#] event  (1) 2024.09.28
[C#] Types  (0) 2024.09.28