스레드 상태 변화
1) 처음 생성 시 실행 대기 상태
2) CPU 스케줄러에 의해 선택되면 실행 됨
3) 시간 할당량이 끝나면 실행 대기 상태로 감. 시간 할당량이 끝나기 전 yield() 메서드를 호출하면 실행 대기로 만들 수 있음
4) 스레드가 실행 상태이면
sleep() 메서드를 호출하게 되면 주어진 시간동안 일시정지 상태가 되고, 시간이 지나면 실행 대기가 됨
join() 메서드를 호출하게 되면, 해당 메서드를 호출 한 스레드가 종료 될 때까지 일시 정지 되었다가 실행 대기 상태로 이동
wait() 메서드를 호출하게 되면 일시 정지가 됨. 하지만 다른 스레드가 notify(), notifyAll()을 호출해주어야 실행 대기로 갈 수 있음
5) 일시 정지 상태이면
interrupty() 메서드가 호출 되면, 예외가 발생하면서 실행 대기 상태로 갈 수 있음
6) 실행 중이면
stop()을 호출하여 스레드를 종료 시킬 수 있다. 하지만 Deprecated 됨
참고
https://ict-nroo.tistory.com/41
'CS' 카테고리의 다른 글
[OS] 스케쥴링 (0) | 2020.03.03 |
---|---|
[OS] 운영체제(OS)란? (0) | 2020.02.29 |
[OS] 프로세스란 무엇일까? (0) | 2019.02.13 |
OS? Yes! 누워서 보는 운영체제 이야기 (0) | 2019.02.13 |
[OS] 쓰레드(Thread) (0) | 2018.04.18 |
댓글