> Java > java지도 시간 > Java에서 wait() 메소드와 sleep() 메소드의 차이점은 무엇입니까?

Java에서 wait() 메소드와 sleep() 메소드의 차이점은 무엇입니까?

WBOY
풀어 주다: 2023-08-26 23:37:21
앞으로
818명이 탐색했습니다.

Java에서 wait() 메소드와 sleep() 메소드의 차이점은 무엇입니까?

sleep() 메서드 Thread 클래스의 static 메서드로, 현재 실행 중인 데이터 스레드를 "실행 불가능" 상태로 보낼 수 있으며 wait() 메서드 인스턴스 메소드이고 스레드 객체를 사용하여 호출하며 해당 객체에만 영향을 미칩니다. sleep() 메서드는 시간이 만료된 후 깨어나거나 interrupt() 메서드를 호출하는 반면, wait() 메서드는 시간이 지난 후 깨어나거나 >notify() 또는 notifyAll() 메서드를 호출합니다. 시간이 만료됩니다. sleep() 메서드는 기다리는 동안 잠금이나 모니터를 해제하지 않는 반면, wait() 메서드는 기다리는 동안 잠금이나 모니터를 해제합니다.

sleep() 메서드 구문

public static void sleep(long millis) throws InterruptedException
로그인 후 복사

wait() 메서드 구문

public final void wait() throws InterruptedException<strong>
</strong>
로그인 후 복사

example

public class ThreadTest implements Runnable {
   private int number = 10;
   public void methodOne() throws Exception {
      synchronized(this) {
         number += 50;
         System.out.println("Number in methodOne(): " + number);
      }
   }
   public void methodTwo() throws Exception {
      synchronized(this) {
         Thread.sleep(2000); // calling sleep() method 
         this.wait(1000); // calling wait() method
         number *= 75;
         System.out.println("Number in methodTwo(): " + number);
      }
   }
   public void run() {
      try {
         methodOne();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   public static void main(String[] args) throws Exception {
      ThreadTest threadTest = new ThreadTest();
      Thread thread = new Thread(threadTest);
      thread.start();
      threadTest.methodTwo();
   }
}
로그인 후 복사

output

Number in methodOne(): 60
Number in methodTwo(): 4500
로그인 후 복사

위 내용은 Java에서 wait() 메소드와 sleep() 메소드의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿