Thread - sleep() & interrupt()

0

sleep()

: 현재 쓰레드를 지정된 시간동안 멈추게 한다.

  • sleep, yield는 static 메서드이고 자기자신에만 해당된다.(내가 나를 자게할 순 있지만, 남을 재울순 없음)
static void sleep(long milis) // 천분의 1초 단위
static void sleep(long milis, int nanos) // 천분의 1초 + 나노초
  • 예외처리를 해야한다. (InturruptedException이 발생하면 깨어남)
try {
	Thread.sleep(1, 500000);  // 쓰레드를 0.0015초 동안 멈추게 한다.
} catch(InterruptedException e) {}
  • 특정 쓰레드를 지정해서 멈추게 하는 것은 불가능하다.
    .sleep 앞에는 Thread로 써주기!

interrupt()

  • 대기상태(waiting)인 쓰레드를 실행대기 상태 (runnable)로 만든다.
void interrupt()  // 쓰레드의 interrupted상태를 false -> true로 변경
boolean isInterrupted() // 쓰레드의 interrupted상태를 반환
static boolean interrupted() // 현재 쓰레드의 interrupted상태를 알려주고, false로 초기화

profile
백엔드를 공부하고 있습니다.

0개의 댓글