반응형
join()
: 지정된 시간동안 특정 쓰레드의 작업을 기다린다.
void join() | 작업이 모두 끝날 때까지 |
void join(long millis) | 천분의 1초 동안 (1000 = 1초) |
void join(long millis, in nanos) | 천분의 1총 + 나노초 동안 |
InterruptedException 처리 필수❗
만약 join()을 사용하지 않으면❓
main쓰레드가 th1과 th2를 기다리지 않고 중간에 실행되는 것이 확인된다.
yield()
: 남은 시간을 다음 쓰레드에게 양보한다.
- 실제 쓰레드의 실행시간은 OS스케줄러가 관리하기에 크게 차이는 없지만
- yield()와 interrupt()를 적절히 사용하면, 응답성과 효율을 높일 수 있다.
- 위 코드는 while(true)이고 if(false)일 경우 쓰레드는 하는 것 없이 while문만 돌아간다.
- 이 때 else{ Thread.yield(); }를 주면 main쓰레드가 자신의 시간을 다른 쓰레드에 양보하도록 하는 코드입니다.
static 메서드이기 때문에 Thread.yield()로 적어야 합니다❗
반응형
'☕ JAVA > ☕ Class & Method' 카테고리의 다른 글
[JAVA][Thread]wait() & notify() (0) | 2024.12.10 |
---|---|
[JAVA][Thread]동기화 synchronization (1) | 2024.12.09 |
[JAVA][Thread]suspend() resume() stop(). 일시정지, 재개, 완전정지 (0) | 2024.12.06 |
[JAVA][Thread]상태와 실행제어. sleep() & interrupt() (1) | 2024.12.05 |
[JAVA][Thread]Daemon Thread 데몬 쓰레드 (0) | 2024.12.03 |