ABOUT ME

코딩 복습하고 공부하는 기록

Today
Yesterday
Total
  • sleep(), interrupt()
    공부/Java 2024. 5. 10. 19:44

    sleep(), interrupt()

     

    sleep()

    - 현재 쓰레드를 지정된 시간동안 멈추게(잠들게) 한다.

    - static 메서드라서 항상 현재 쓰레드에서만 동작한다.

     

    사용 방법

    static void sleep(long millis)                          // 천분의 일초 단위
    static void sleep(long millis, int nanos)         // 천분의 일초 + 나노초

     

    - 예외처리를 해야 한다. (InterruptedException이 발생하면 깨어남)

    - 특정 쓰레드를 지정해서 멈추게 하는 것은 불가능하다.

     

     

    interrupt()

    - 대기상태(WAITING)인 쓰레드를 실행대기 상태(RUNNABLE)로 만든다.

     

    interrupt()와 관련된 메서드는 아래와 같다.

    void interrupt()                           쓰레드의 interrupted 상태를 false에서 true로 변경
    boolean isInterrupted()              쓰레드의 interrupted 상태를 반환
    static boolean interrupted()       현재 쓰레드의 interrupted 상태를 반환 후 false로 변경

    isInterrupted()는 쓰레드가 interrupted가 되어졌는지 확인한다.

    잠을 다 자고 일어났는지(false), 잠을 자는데 누군가 깨워서 일어난건지(true)의 차이다.

    '공부 > Java' 카테고리의 다른 글

    join(), yield()  (0) 2024.05.13
    suspend(), resume(), stop()  (0) 2024.05.12
    쓰레드의 상태와 실행제어  (0) 2024.05.09
    데몬 쓰레드(daemon thread)  (0) 2024.05.09
    쓰레드 그룹  (0) 2024.05.08
Designed by Tistory.