효율적인 멀티쓰레드 프로그램 제작을 위해 정교한 스케줄링 필요!
Thread의 실행 대기는 queue 구조로 되어있으며 실행 후 일시정지 상태를 거쳐 다시 queue에 들어오거나 소멸됨
millis + nanos의 시간동안 Thread를 일시정지시킨다. 단 작은 시간에서는 오차가 발생할 수 있다.
sleep()으로 인해 일시정지 상태인 Thread는 interrupt()가 호출될 경우 다시 실행 대기로 전환할 수 있는데 이를 위해서 try-catch 문을 통해 예외처리를 해주어야 한다.
sleep()은 static으로 선언되어 있기 때문에 Thread.sleep()으로 호출해야하고, 현재 실행중인 Thread에서 sleep이 이루어진다. → 현재 실행중인 Thread에서 다른 Thread를 sleep()을 시킬 수 없다.