English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wait())-스레드는 이 모니터의 소유권을 해제하고, 다른 스레드가 객체의 모니터에 대기 중인 호출을 통해 알림을 기다립니다.notify()
메서드 또는notifyAll()
메서드가 깨운 스레드. 그런 다음, 스레드는 다시 모니터의 소유권을 얻을 수 있을 때까지 기다립니다.
Sleep())-현재 실행 중인 스레드가 지정된 밀리초 동안 잠들어 있도록 합니다. 이 스레드는 어떤 모니터의 소유권도 잃지 않습니다. 지정된 시간 동안 현재 스레드를 "실행할 수 없는" 상태로 보냅니다.
번호 | 키 | 기다리기 | 잠들기 |
---|---|---|---|
1 | 클래스 | Wait() 메서드는 Object 클래스에 속합니다 | Sleep() 메서드는 Thread 클래스에 속합니다 |
2 | 락 해제 | Wait()는 객체에 대한 락을 해제합니다 | 그는 객체에 대한 락을 해제하지 않습니다 |
3 | 호출 컨텍스트 | 객체 본체에서 Wait()를 호출할 수 있습니다 | 스레드에서 Sleep()를 호출할 수 있습니다 |
4。 | 깨우기 조건 | 까지 깨워줍니다notify() ،notifyAll() 객체에서 | 최소 시간이 만료되거나 통화가 끊기까지 |
5 | 거짓 깨우기 | 프로그램이 거짓 깨우기를 할 수 있습니다 | 거짓 깨우기가 발생하지 않습니다. |
synchronized(lockedObject){ while(condition == true){ lockedObject.wait() //lockedObject 락을 해제합니다 } Thread.sleep(100); //현재 스레드를 잠재울 수 있습니다 }