>  기사  >  Java  >  Java에서 대기와 수면의 차이점은 무엇입니까?

Java에서 대기와 수면의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-12-27 15:14:064314검색

Java에서 대기와 수면의 차이점은 무엇입니까?

sleep:

sleep 메소드는 Thread 클래스의 메소드에 속합니다. 스레드는 일정 시간 동안 대기한 후 자동으로 깨어나 실행 가능 상태로 전환됩니다. 스레드 스케줄링 메커니즘도 스레드 실행을 재개하는 데 시간이 걸리기 때문에 즉시 실행 상태로 전환되지 않습니다. 스레드 개체는 sleep 메서드를 호출하지만 보유하고 있는 내용을 해제하지 않습니다. 모든 개체는 잠겨 있으므로 다른 프로세스 개체의 작업에는 영향을 미치지 않습니다. 그러나 절전 프로세스 중에 다른 객체에 의해 해당 인터럽트()가 호출되어 InterruptedException 예외가 발생할 수 있습니다. 프로그램이 이 예외를 포착하지 않으면 프로그램이 이 예외를 포착하면 스레드가 비정상적으로 종료되고 TERMINATED 상태로 들어갑니다. , Exception이 발생하면 프로그램은 catch 문 블록(및 finally 문 블록도 가능)과 후속 코드를 계속 실행합니다.

wait:

wait는 Object의 멤버 메소드입니다. 일단 객체가 wait 메소드를 호출하면, inform() 및 informAll(은 다음과 같아야 합니다. ) 메서드를 사용하여 프로세스를 깨웁니다. 스레드가 하나 이상의 개체에 대한 동기화 잠금을 소유한 경우 wait()를 호출한 후 스레드는 wait()를 호출한 스레드에 국한되지 않고 보유하고 있는 모든 동기화 리소스를 해제합니다. ) 메소드 객체. wait() 메서드는 대기 프로세스 중에 Interrupt() 메서드를 호출하는 다른 객체에 의해 생성될 수도 있습니다.

sleep 메소드와 wait 메소드의 차이점은 다음과 같습니다.

● sleep은 Thread 클래스에서 오고, wait는 Object 클래스에서 옵니다#🎜 🎜##🎜🎜 # ● sleep 메소드는 잠금을 해제하지 않지만 wait 메소드는 잠금을 해제하여 다른 스레드가 동기화 제어 블록이나 메소드를 사용할 수 있도록 허용합니다. 동기화 제어 방식이나 동기화 제어 블록에서만 사용할 수 있고, sleep은 어디에서나 사용할 수 있다

 ● sleep은 예외를 잡아야 하고, wait,notify,notify모두 예외를 잡을 필요는 없다#🎜🎜 #

추천 학습:

Java 비디오 튜토리얼

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.