새소식

반응형
Java

[JAVA] Thread 종류 및 상태

  • -
반응형

Thread 종류 

non-daemon, daemon tread 

 

non-daemon thread

java의 main을 실행했을 때 실행되는 thread 

 

daemon thread

위의 non-daemon이 아닌 thread의 작업을 돕는 보조적인 역할을 하는 thread 

non-daemon thread가 모두 죽으면, daemon thread도 강제적으로 종료된다

garbage collection와 같은 백그라운드 태스크를 실행하며 low priority를 가지고 있습니다. 

 

 

Thread 상태 

스레드의 상태는 java.lang.Thread 클래스 내부에 State라는 이름을 가진 Enumerated Types(열거형)으로 선언되어 있습니다.

출처 : https://blog.tier1app.com/2014/11/26/thread-dump-analysis/

NEW

  • 스레드가 생성되었지만 아직 실행되지 않은 상태

RUNNABLE

  • 현재 CPU를 점유하고 작업을 수행 중인 상태
  • 운영체제의 자원 분배로 인해 WAITING 상태가 될 수도 있다

BLOCKED

  • Monitor를 획득하기 위해 다른 스레드가 락을 해제하기를 기다리는 상태

WAITING

  • wait() 메서드, join() 메서드, park() 메서드 등을 이용해 대기하고 있는 상태

TIMED_WAITING

  • sleep() 메서드, wait() 메서드, join() 메서드, park() 메서드 등을 이용해 대기하고 있는 상태
  • WAITING 상태와의 차이점
    • 메서드의 인수로 최대 대기 시간을 명시할 수 있어 외부적인 변화뿐만 아니라 시간에 의해서도 WAITING 상태가 해제될 수 있다는 것
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.