❗ static 메서드이기 때문에) Thread.sleep()이라고 적어야 한다. 잘못된 예시
위 코드는 쓰레드7을 잠들게 하는 것처럼 보이지만, 사실 main쓰레드가 잠드는 것이다. 올바른 예시
이런 식으로 헷갈리지 않게 Thread.sleep()이라고 적어주어야 한다.
interrupt() : 대기상태(WAITING)인 쓰레드를 실행대기 상태(RUNNABLE)로 만든다.
메서드
상태
voidinterrupt()
쓰레드의 interrupted상태를 false에서 true로 변경.
booleanisInterrupted()
쓰레드의 interrupted상태 반환.
staticbooleaninterrupted()
쓰레드의 interrupted상태를반환하고, 상태를 false로 초기화한다.
sleep(), wait(), join()된 쓰레드를 실행하게 한다.
Thread에는 interrupt란 boolean 상태가 있다.
start()되었을 때는false로 RUNNABLE상태이다.
interrupted() 는 static이기에Thread.interrupted()라 적어야 한다.
interrupted()를 사용하면 static method인 main메서드의 현재 상태를 반환하고 → 이를 interrupat를 false. RUNNABLE상태로 바꾼다.