자바 스레드의 상태와 상태 제어 정리 (join, yield, sleep)
자바
2020. 12. 27. 09:18
오늘은 자바의 스레드의 상태와 상태 제어 메서드에 대해 알아보겠습니다.
오늘도 "초보자를 위한 java programming" 책을 참고 하였습니다.
그럼 시작 하겠습니다.
스레드의 상태
스레드의 상태는 준비 -> 실행 -> 대기 단계가 있습니다. 대기는 말 그대로 작업을 잠시 중단 하고 스레드가 대기 하고 있는 상태 입니다.
Runnable (준비) : 스레드가 실행하기 위한 준비 상태
Running (실행) : 스레드 스케줄러에 의해 선택괸 스레드를 실행하는 상태
Blocked (대기) : 스레드가 작업을 완수하지 못하고 잠시 작업을 멈추는 상태
스레드는 위의 상태를 가지면서 join, yield, sleep 를 통해 스레드의 상태들을 제어 하게 됩니다.
스레드의 상태 제어 메서드
- sleep : 실행 중인 스레드를 강제로 대기 상태로 보낸다. (다른 스레드의 기아상태 방지)
- yield : 실행 중인 스레드가 해당 메서드를 호출 하면 cpu에 자신을 대기 상태로 돌려 달라고 "힌트"를 줌.
==> yield를 호출하면 대기상태로 가지만 이후 똑같은 메서드가 나오지 말라는 룰이 없음. 즉, 결과를
보장하지 않음
- join : Runnable 또는 blocked 상태인 스레드가 호출하며, 해당 메서드 호출시 현재 실행 중인 스레드를
Blocked 상태로 돌리고 대기중이던 join 을 호출한 스레드가 실행된다.
'자바' 카테고리의 다른 글
java) Thread의 interrupt 이해하기 (0) | 2021.01.03 |
---|---|
자바 Thread 배우기 전 기초 정리. (0) | 2020.12.27 |
자바. 접근지정자 종류와 정의 정리. (0) | 2020.12.23 |
자바! 상속의 정의와 용법 정리! (0) | 2020.12.22 |
method 값 / 참조/ 문자열. 호출 방법에 의한 차이. (0) | 2020.12.21 |