반응형
스레드 관리 정보

데몬 스레드
JVM이 스스로 필요에 의해 사용하는 스레드이다. 대표적인 예로 GC가 있다.
내가 작성한 스레드도 데몬 스레드로 표시하여 JVM이 인식하게 할 수도 있다.
일반 스레드가 모두 종료되면 데몬 스레드가 살아 있더라도 프로그램은 종료된다.
스레드 상태
- NEW
스레드가 생성되었지만 아직 실행할 준비가 되지 않은 상태이다. start() 메소드가 호출되면 RUNNABLE 상태가 된다.
- RUNNABLE
스레드가 현재 실행되고 있거나 실행 준비되어 스케줄링을 기다리는 상태이다.
- WAITING
스레드가 어떤 Object 타입의 객체 a에 대해 a.wait()을 호출하고 무한 대기하면서 다른 스레드가 a.notify(), a.notifyAll()을 불러주기를 기다리고 있는 상태이다. 스레드 동기화를 위해 사용된다.
- TIMED_WAITING
스레드가 sleep(int n) 을 호출하여 n밀리초 동안 잠을 자고 있는 상태이다.
- BLOCK
스레드가 I/O 작업을 요청하여 I/O 작업이 완료되기를 기다리는 상태이다.
- TERMINATED
스레드가 종료한 상태이다. 더이상 다른 상태로 바뀔 수 없다.
★ 참고
만일 실행중인 스레드의 코드에 yield()를 호출하는 부분이 있다면 이는 다른 스레드에게 양보하겠다는 의미이며 JVM은 해당 스레드를 RUNNALBE 상태로 변경시키고 다시 스레드 스케줄링을 실시한다.
반응형
'Java' 카테고리의 다른 글
WAS란 그리고 그 종류들 (0) | 2022.06.20 |
---|---|
JAVA 자주 까먹는 것들 (0) | 2022.02.25 |
java 자주 발생하는 예외 (0) | 2022.02.04 |
Java 메모리 영역(Static, Stack, Heap) (0) | 2022.01.11 |
Java Servlet이란 (0) | 2022.01.11 |