[Java] Java Thread States

[Java] Java Thread States

Goal

  • Java Thread 상태의 종류를 알아보자
  • Thread의 상태는 언제 변화하고 어떻게 변화하는지 알아보자

Practice

1. Java Thread의 State

  • NEW
    • Thread가 생성되었을 때, 기본 상태
  • RUNNABLE
    • Thread가 start되면, RUNNABLE 상태로 변경
    • CPU를 점유하려고 대기 중인 상태. 즉, 실행할 수 있는 상태
  • BLOCKED
    • 고유 락을 얻으려고 Block된 상태
    • 아래와 같은 두 가지 경우에 BLOCKED 상태가 된다.
      • synchronized block/method에 들어가기 위해서 lock을 기다릴 때
      • Object.wait() 메소드가 호출된 object의 고유 락을 다시 얻기 위해 기다릴 때

    Java의 모든 객체는 Lock을 갖음. 이를 고유 락(Instrinsic Lock) 또는 모니터 락(Monitor Lock), 모니터(Monitor) 라고 한다.

    원문에는 고유 락이라는 표현 대신 Monitor Lock이란 표현을 사용

  • WAITING
  • TIMED_WAITING
  • TERMINATED
    • Thread가 종료되었을 때, TERMINATED 상태가 된다.


2. Java Thread State Transitions

screenshot001



Refences

댓글남기기

-->