[Chap15] - 05 쓰레드의 상태 #1
이넘 타입
객체를 만들음
객체를 실행시킴
양보를 하는 메소드는 있으나, 내가 쓸래 메소드는 없다.
객체 끝나면 끝. 다시 실행안됨.
모든 쓰레드는 일회용이다.
이렇게 Tread.State 타입으로 변수를 선언하고,
thread.getState() 함수 호출 뒤, print를 하면
변경되는 상태를 확인할 수 있다.
main 쓰레드가
thread.join()을 호출했으므로
main 쓰레드는 멈춘다. 그리고 thread 가 실행된다.
1억번을 돌리는데
0.5초가 걸려서
thread1 실행이 2번 나온거다.
왜냐면 1초마다 상태를 변경하기 때문에
yield는 실행대기 <--> 실행을 왔다갔다
이 쓰레드는 생성되자마자
3초동안 잠만 잔다.
만약에 interrupted Exception이 발생하면
아래를 실행해라.
myThread는 아직 잠자는 시간 3초가 지나지 않았으나
myTread.interrupt()가 실행되니까
catch로 넘어가서
myThead는 실행 -> 소멸 된다.
myThread1은 1억초동안 실행된다
myThread2는 내부에 myThread1을 가지고 있다.
myThread1에게 우선 실행시킨다. 3초동안을
3초가 지나면
myThread2는 자신의 1억초를 실행시킨다.
'java > 자바' 카테고리의 다른 글
Ch16 제네릭 (0) | 2022.10.30 |
---|---|
[Chap15] - 06 쓰레드의 상태 #2 (0) | 2022.10.24 |
[Chap15] - 04 쓰레드 동기화 (0) | 2022.10.24 |
[Chap14] - 03 예외(Exception) 클래스 사용자 정의 (0) | 2022.10.10 |
[Chap14] - 02 예외(Exception)의 전가(throws) (0) | 2022.10.10 |