스레드 객체를 생성(NEW) 하고 start() 메소드를 호출하면 실행X
실행대기상태(RUNNABLE)가 된다. 실행을 기다리는 상태.
실행 대기하는 스레드는 CPU 스케쥴링에 따라 CPU를 점유하고 run() 메소드를 실행, 이때를 실행(RUNNING) 상태
실행 스레드는 run() 메소드를 모두 실행하기 전에 스케줄링에 의해 다시 실행 대기 상태로 돌아갈 수 있다. 그리고 다른 스레드가 실행 상태가 된다.
더 이상 실행할 코드가 없으면 스레드의 실행은 멈추게 된다. 이 상태를 종료상태(TERMINATED) = DEAD 상태
Thread 클래스의 메소드
join() = 한 스레드가 끝날 때까지 일시정지
wait() 동기화 블록 내에서 스레드를 일시 정지 상태
※ 다른 스레드에게 실행 양보
yield()를 호출한 스레드는 실행 대기 상태로 돌아가고, 다른 스레드가 실행 상태가 된다.
일시정지가 아니라 대기상태로. 다시 runnable 상태로
public void run() {
while(true) {
if(work) {
System.out.println("ThreadA 작업 내용");
} else {
Thread.yield();
}
}
}
'언어 > Java' 카테고리의 다른 글
스레드 안전 종료 (0) | 2023.08.16 |
---|---|
스레드 동기화 (0) | 2023.08.16 |
스레드 이름 부여하기 (0) | 2023.08.16 |
Thread pop, push (0) | 2023.08.16 |
ThreadSleep (0) | 2023.08.16 |