지우너
[TIL] 2024.08.15 본문
코드트리 90xp
정보처리기사실기 강의
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
join()
해당 스레드가 작업을 끝낼 때까지 기다리게 하는 함수.
join(time)이렇게 time을 매개변수로 넣어주면 TIMED_WAITING 상태가 된다. join()을 하면 WAITING상태가 됨.
join을 쓰는 이유
sleep을 이용해 어떤 스레드의 작업이 끝나기를 기다려도 되지만, 작업이 어느 정도의 시간이 걸릴지 예측하는 것은 어렵다.
인터럽트를 사용하면 대기 중인 (sleep이나 join 중인) 스레드를 바로 깨울 수 있다(RUNNABLE이 됨).
스레드의 인터럽트 상태를 단순히 확인만 하는 용도라면 isInterrupted()를 사용하면 된다.
인터럽트 상태를 직접 체크할 때는 Thread.inerrupted()를 사용해야 한다.(인터럽트를 받는 스레드가 사용해야 함)
인터럽트 상태면 true반환. false로 변경.
인터럽트 상태가 아니면 false 반환. 변화 없음.
'Records > TIL' 카테고리의 다른 글
[TIL] 2024.09.11 (0) | 2024.09.11 |
---|---|
[TIL] 2024.08.25 (0) | 2024.08.25 |
[TIL] 2024.08.17 (0) | 2024.08.17 |
[TIL] 2024.08.16 (0) | 2024.08.16 |
[TIL] 2024.08.14 (0) | 2024.08.14 |